Asp.net 如何从其ID检索ViewState中的TextBox值
我正在ASP.NET页面中以编程方式构建许多文本框,单击按钮后,我想处理这些值,是否有可能从ViewState中的ID检索它们 这是我的密码: aspx中表格的参考:Asp.net 如何从其ID检索ViewState中的TextBox值,asp.net,Asp.net,我正在ASP.NET页面中以编程方式构建许多文本框,单击按钮后,我想处理这些值,是否有可能从ViewState中的ID检索它们 这是我的密码: aspx中表格的参考: <asp:Table ID="Distances" runat="server" ViewStateMode="Inherit"></asp:Table> 默认情况下,ViewState处于启用状态,因此在回发过程中保留Text属性应该已经起作用了 例如,您可以使用FindControl(“TextBox
<asp:Table ID="Distances" runat="server" ViewStateMode="Inherit"></asp:Table>
默认情况下,
ViewState
处于启用状态,因此在回发过程中保留Text
属性应该已经起作用了
例如,您可以使用FindControl(“TextBoxID”)
或枚举它们以获取对TextBox
的引用(假设它们被添加到类似面板的容器控件中):
我假设您没有在回发上重新创建那些文本框。因此,您需要使用与以前相同的ID,并在页面生命周期的最新阶段在Page\u Load
中重新创建它们。因此,您可以在事件中创建它们,但不能在事件中重新创建它们
您应该在动态创建代码的地方显示代码,这样我就可以更具体一些
ViewState
在默认情况下处于启用状态,因此在回发过程中保留Text
属性应该已经起作用了
例如,您可以使用FindControl(“TextBoxID”)
或枚举它们以获取对TextBox
的引用(假设它们被添加到类似面板的容器控件中):
我假设您没有在回发上重新创建那些文本框。因此,您需要使用与以前相同的ID,并在页面生命周期的最新阶段在Page\u Load
中重新创建它们。因此,您可以在事件中创建它们,但不能在事件中重新创建它们
您应该在动态创建代码的地方显示代码,这样我就可以更具体一些
我刚刚完成:我的问题是,我的表行在操作过程中丢失,因此我不知道文本框在哪里;)我刚刚完成了:我的问题是,我的表行在操作过程中丢失了,因此我不知道文本框在哪里;)
Distances.Rows[j].Cells[i].Controls.Add(CreateTB(distance.ToString(), (i + j * rows).ToString(), false));
protected TextBox CreateTB(string text, string id, bool ebanled = true)
{
TextBox tb = new TextBox() { Text = text, ID = id, Enabled = ebanled};
tb.TextChanged += new EventHandler(OnTBChanged);
return tb;
}
foreach(TextBox txt in MyPanel.Controls.OfType<TextBox>())
{
String text = txt.Text;
}
TextBox txt = (TextBox)MyPanel.FindControl("TextBox1")
String text = txt.Text;