0

更新パネルとスクリプト マネージャーを使用してテーブルに新しい行を追加しました。各行には 4 つのテキスト ボックスがあります。テーブルに追加されている場合、このテキスト ボックスをどのように処理して使用できますか。

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Table ID="Table5" runat="server" Width="100%">
                    <asp:TableHeaderRow>
                        <asp:TableHeaderCell ID="TableHeaderCell1" runat="server">1</asp:TableHeaderCell><asp:TableHeaderCell
                            ID="TableHeaderCell2" runat="server">2</asp:TableHeaderCell><asp:TableHeaderCell
                                ID="TableHeaderCell3" runat="server">3</asp:TableHeaderCell><asp:TableHeaderCell
                                    ID="TableHeaderCell4" runat="server">4</asp:TableHeaderCell></asp:TableHeaderRow>
                    <asp:TableRow>
                    </asp:TableRow>
                </asp:Table>
                <center>
                    <asp:ImageButton ID="ImageButton1" runat="server" OnClick="ImageButton1_Click"
                    ImageUrl="~/Images/add.jpg" ValidationGroup="AddSavabegh" /></center>
                <br />
            </ContentTemplate>
        </asp:UpdatePanel>

コードビハインド:

   private void GenerateTable(int rowsCount)
    {
        const int colsCount = 4;
        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);
        }
        SetPreviousData(rowsCount, colsCount);
        rowsCount++;
        ViewState["RowsCount"] = rowsCount;
    }

私はこれを使用しましたが、 null を返します:

protected void Button1_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < 3; i++)
        {
            for (int j = 0; i < 4; i++)
            {
                TextBox tb = (TextBox)UpdatePanel1.FindControl("txtSabeghe_" + (i+1) + "Col_" + (j+1));
                Response.Write(tb.Text);
            }
        } 

    }
4

1 に答える 1

0

GenerateTableあなたの前にButton1クリックイベントのポストバック中に呼び出しますFindControl()..

于 2012-09-24T07:30:07.893 に答える