我想在编辑模式下访问的数据列表中有一个文本框:
<asp:DataList ID="dl1" OnEditCommand="dl1_EditCommand"
OnCancelCommand="dl1_CancelCommand" OnUpdateCommand="dl1_UpdateCommand"
runat="server">
...
<asp:TextBox ID="tbType" Width="600" runat="server" Text='<%# Eval("Type") %>' />
代码隐藏:
protected void dl1_UpdateCommand(object sender, DataListCommandEventArgs e)
{
TextBox tb = (TextBox)e.Item.FindControl("tbType");
}
我的代码执行,但文本框的值总是为空,即使我有一个值!我没有得到我的更新文本或默认文本 - 我得到了空值。它找到了文本框,我甚至打开了检查器来查看它的文本......
以前没有发生这种情况,我不确定我做错了什么。我之前从来没有遇到这样的问题...
完全公开 - 这是用户控件内的数据列表。
更新
按要求显示EditItemTemplate
个代码。
值为“” - 我得到对文本框的引用,但没有值。
<EditItemTemplate>
<td><asp:LinkButton ID="lbEdit" runat="server" Text="Update" CommandName="update" CausesValidation="false" />
<br /><asp:LinkButton ID="lbCancel" runat="server" Text="Cancel" CommandName="cancel" CausesValidation="false" />
</td>
<td>
<asp:HiddenField ID="hfID" runat="server" Value='<%# Eval("Id") %>' />
<asp:TextBox ID="tbType" Width="600" runat="server" Text='<%# Eval("Type") %>' />
</td>
<td></td>
</EditItemTemplate>