我有一个带有EditTemplate的列表视图。如果我在listview中有一个项目,则以下代码抛出一个空异常:
if((TextBox)this.lvwColors.EditItem.FindControl("txtColor")) != null)
{
this.Color =
((TextBox)this.lvwColors.EditItem.FindControl("txtColor")).Text.Trim();
}
如果我的列表视图中有两个项目,则不会抛出错误。
另一个奇怪的事情是它只在生产服务器上抛出错误,但是当我在本地测试时,我没有得到错误。有谁知道为什么会出现这种行为?
这是标记的EditTemplate部分:
<EditItemTemplate>
<asp:TextBox ID="txtColor" runat="server"
Text='<%# Eval("Color").ToString().Trim() %>'
</EditItemTemplate>
答案 0 :(得分:1)
<强>的ListView:强>
protected void yourListView_ItemEditing(Object sender, ListViewEditEventArgs e)
{
ListViewItem item = yourListView.Items[e.NewEditIndex];
if((TextBox)item.FindControl("txtColor") != null)
{
this.Color =
((TextBox)item.FindControl("txtColor")).Text.Trim();
}
}