在用户控件中使用时,无法在回发中维护gridview内的数据

时间:2017-05-18 17:29:41

标签: c# asp.net gridview user-controls viewstate

我在GridView中存在一个文本框,它本身就是用户控件的一部分,我在page_Init上动态加载此用户控件。

我的用户控件中的控件是DropDown,TextBox和GridView。

现在,DropDown和TextBox能够在回发中保留值,但GridView内的文本框不会保留值。

在页面init上添加用户控件:

 if (postBackCntrl.Contains("AddUserControlButton"))
            {
                UserControl newGrid = (UserControl)LoadControl("~/UserControl.ascx");
                newGrid.ID = "test" + gridList.Count;
                gridList.Add(newGrid);
            }

GridView代码:GridView中的TextBoxes ItemTemplate无法在回发中保留值:

<asp:GridView runat="server" ID="grdUser" CssClass="GridTable" Width="90%" AutoGenerateColumns="false"
                ShowFooter="true" OnDataBound="MergeGridViewFooter">
                <Columns>
                    <asp:TemplateField HeaderText="ContactUs">
                        <ItemTemplate>
                            <asp:TextBox ID="txtContactUs" runat="server" CssClass="textbox" Height="60px" TextMode="MultiLine"></asp:TextBox>
                        </ItemTemplate>
                        <FooterTemplate>
                            <asp:Button ID="btnaddrow" runat="server" Text="Add Row" CssClass="ui-button jquery-ui" Style="font-size: 12px" OnClick="btnaddrow_Click" />
                            <asp:Button ID="btnDelRowAddress" runat="server" Text="Delete Row" CssClass="ui-button jquery-ui" Style="font-size: 12px" OnClick="btnDelRowAddress_Click" />
                        </FooterTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Definition">
                        <ItemTemplate>
                            <asp:TextBox ID="txtDefinition" runat="server" TextMode="MultiLine" Height="60px" CssClass="textbox"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Address">
                        <ItemTemplate>
                            <asp:TextBox ID="txtAddress" runat="server" TextMode="MultiLine" Height="60px" CssClass="textbox"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>

0 个答案:

没有答案