当gridview再次绑定时,我如何保留在gridview's模板字段内的文本框中输入的值
本文关键字:gridview 字段 输入 文本 定时 绑定 保留 何保留 | 更新日期: 2023-09-27 18:10:36
当gridview
再次获得databound
时,我如何保留在gridview's templatefield
内部的TextBox
中输入的值?
有人能告诉我为什么吗?也许能帮我找到解决办法?
例如,点击一个按钮,点击事件是Gridview1.DataBind()
,但我们失去了所有的文本框的值。
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
<ContentTemplate>
<%--post GridView--%>
<asp:GridView ID="posts" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%--Comments Gridview--%>
<asp:GridView ID="comments" runat="server"></asp:GridView>
<%--a Textbox and bUtton For sending new Comment--%>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
protected void Button1_Click(object sender, EventArgs e)
{
posts.DataSource = GetData();
posts.DataBind();
}
Edit1
让我解释更多,当一个用户发送一个新的评论,我将广播一个消息(与signalr)给所有其他用户更新他们的Gridviews(当一个客户端得到广播消息button1_Click,将被jquery调用)。我的问题是,如果其他用户在他们的文本框上输入新的评论,将丢失他们键入的评论。
要在SessionState
对象中存储字符串数组,然后读取它,请参考以下示例代码片段:
string[] _arr = {"a", "b", "c" }; // sample array - replace by 15 entries pertinent to your case
Session["arrString"] = _arr ;
从SessionState
读回:
string[] arrFromSession = (string[])Session["arrString"];
希望这将帮助。祝好,