0

1-ページ内でJavaスクリプトまたはその他の方法で動的に生成されるコントロールを処理することは可能ですか?

2-私が私の中にいる場合、検索制御のメカニズムは何TextBoxですかUpdatePanel

たとえば、テーブルに追加されたcontrols(textBox)の値を取得するにはどうすればよいですか?

for (int i = 0; i < rowsCount; i++)
        {
            TableRow row = new TableRow();
            for (int j = 0; j < colsCount; j++)
            {
                TableCell cell = new TableCell();
                TextBox tb = new TextBox();
                tb.ID = "txtSabeghe_" + (i + 1) + "Col_" + (j + 1);
                cell.Controls.Add(tb);
                row.Cells.Add(cell);
            }
            Table5.Rows.Add(row);
        }

ポストバックを回避するために、機能のテーブルとボタンの両方が更新パネルにあります

4

1 に答える 1

2

あなたの質問はあまりにも一般的ですが、あなたが求めている「と思う」ことに基づいて答えるために最善を尽くします.

  1. はい、すべての .net コントロールは DOM で HTML としてレンダリングされるため、DOM 要素とまったく同じように処理できidます。もちろん、この記事が示すように web.configでtoを設定できます。これにより、ID は指定したままになります。ClientIDClientIDModeStatic

    <asp:TextBox runat="server" id="mytextbox" />
    

    そしてあなたのスクリプト。

    // without ClientIDMode = 'Static'
    var element = document.getElementById('<%=mytextbox.ClientID%>');
    
    // with ClientIDMode = 'Static'
    var element = document.getElementById('mytextbox');
    
  2. Control.FindControl検索するコントロールの ID を (文字列として) 取得する (基本クラスの) サーバー側メソッドでありControl、次のように使用できます。

    <asp:Panel runat="server" id="mypanel">
        <asp:TextBox runat="server" id="mytextbox" />
    </asp:Panel>
    

    そしてあなたのコードビハインドで。

    TextBox tbx = mypanel.FindControl("mytextbox");
    

編集 - マスター ページを使用してコントロールを検索する

マスター ページを使用してコントロールを見つけたい場合は、そのように親をフィルター処理するのが最適です。

// parent place holder in master page
ContentPlaceHolder cph = (ContentPlaceHolder)this.Master.FindControl("ContentPlaceHolderID");

// parent panel in content place holder
UpdatePanel pnl = cph.FindControl("UpdatePanelID");

// child of parent that you're interested in
TextBox tbx = pnl.FindControl("TextBoxID");
于 2012-09-24T09:25:37.080 に答える