从转发器asp.net中的文本框中获取值c#

我一直试图让这个工作几个小时,但谷歌没有任何东西可以帮助我解决问题。

我有一个非常简单的转发器控件:

   

userDefDiv面板位于另一个面板内,该面板位于contentPLaceHolder中。 userDefDiv的父面板没有“enableviewstate =”false“”。

所以。 此页面上的所有内容都发生在几个linkbuttons_click之后。 所以在page_load期间没有任何反应。 在我点击另一个链接按钮后,我想从转发器内的不同文本框中获取数据。

C#代码:

这是创建所有转发器项的代码。

 public void createUserDef() { DataTable userDefData; userDefData = ..... (data from Database.) userDefDiv.Visible = true; userDefRepeater.DataSource = userDefData; userDefRepeater.DataBind(); } 

linkbutton的代码:

 protected void linkButton_Click(object sender, EventArgs e) { createUserDef(); Label2.Visible = true; foreach (RepeaterItem item in userDefRepeater.Items) { TextBox box = (TextBox)item.FindControl("TextBox1"); string b = box.Text; Label2.Text += b + " . "; } } 

如您所见,我在点击过程中再次创建了转发器。 但我唯一可以在label2中阅读。 是一个“。”的数字,在每个文本框的点上。 但是文本框中的文字是空的..我做错了什么?

谢谢阅读! 马蒂亚斯

解:

  1. 将EnableVIewState =“true”添加到文本框和转发器。

  2. 在获取值之前不要调用dataBind()。

谢谢!

您需要将EnableViewState设置为“true”,以使链接按钮在转发器中正常工作