我有一个名为CouncilListView
的ListView和一个名为EmailTextBox
的TextBox,它位于ListView中。
如何从CodeBehind访问此TextBox?
我尝试了某些形式的FindControl
,如:
this.Page.FindControl("EmailTextBox");
this.Page.FindControl("CouncilListView").FindControl("EmailTextBox");
this.CouncilListView.Findcontrol("EmailTextBox");
this.FindControl("EmailTextBox");
但是我收到了这个错误:
Object reference not set to an instance of an object.
答案 0 :(得分:1)
这是假设,因为我看不到你的完整页面代码隐藏和ListView代码,但是:
原因是文本框是Listview的一部分;所以你需要在ListView中找到它。一种可能的方法是在下面。
public void GetTextBoxValuesFromListView()
{
Textbox tb = null;
ListViewItem Item = null;
foreach (ListViewDataItem item in CouncilListView.Items)
{
Item = item;
tb = ((TextBox) (Item.FindControl("EmailTextBox")));
if (tb.Text != null)
{
//Do something
}
}
}
我在ListViews遇到了一些问题我在一段时间后有问题,它们可能对您有用:
答案 1 :(得分:0)
我这样解决了:
protected void CouncilListView_ItemInserted(Object sender, ListViewInsertedEventArgs e)
{
foreach (DictionaryEntry Emailentry in e.Values)
{
if (Emailentry.Key == "Email") //table field name is "email"
{
message.To.Add(new MailAddress(Emailentry.Value.ToString()));
}
}
}