のようなHTMLオブジェクトで、これらすべての<input type="text" id="txt_A1">
コントロールがrunat="server"
ように、サーバー、またはコードビハインドを持っている必要があることを
string CatID = String.Concat(dr["Group"], dr["ID"]);
var control = Controls.Cast<Control>().FirstOrDefault(x => x.ID == string.Format("txt_{0}", CatID)) as TextBox;
if (control != null)
control.Text = dr["Amount"].ToString();
はTAKE注、それらにアクセスすることができます。
次に、<input>
コントロールの代わりにTextBox
というasp.netコントロールを使用することをお勧めします。それらを扱う方が簡単です。
あなたのアイデアは悪くないが、コントロールの最初のレベルを通過します。つまり、入力がdiv
(それはdiv
のコントロールコレクションに属しています)にあれば、コードは見つからないでしょう。子コントロールと子コントロールを持つすべてのコントロールの子コントロールを持つすべてのコントロールとページ上の入力コントロールを見つけるには、再帰関数を作成する必要があります。
ここにそのような関数があります。私はあなたが検索しているコントロールのタイプを渡すことができるようにそれをタイプしました。あなたのケースでは、である必要があります。input
は一般的なHTMLテキストコントロールです。 asp.net TextBox
コントロールを使用している場合は、コントロールタイプとしてTextBox
を渡す必要があります。
public IEnumerable<Control> GetControlsOfType<T>(Control parent)
{
if (parent.HasControls())
{
foreach (Control childControl in parent.Controls)
{
if (childControl is T)
yield return childControl;
foreach (var nextLevel in GetControlsOfType<T>(childControl))
{
yield return nextLevel;
}
}
}
}
今、このようにそれを使用します。
//find all textControls
var textControls = GetControlsOfType<HtmlInputText>(this);
//find specific control from the list
var control = textControls.FirstOrDefault(t => t.ID == string.Format("txt_{0}", CatID));
//set value
(control as HtmlInputText).Value = "some value";
あなたはデバッグしようとしましたか?どんなエラーが出ていますか? –
@chindiralasampathkumarエラーはありません。しかし出力がありません – theo
なぜこの目的のためにjqueryを使用しないのですか? AJAX呼び出しを行い、データを取得してコントロールに移入します。 –