我有一个绑定到 ObjectDataSource 的网格视图。用户完成数据更新后,我想将他们的用户名或用户 ID 放在 UpdatedBy 列中,以跟踪谁更新了哪些记录。UpdatedBy 列可以在页面上隐藏或只读,因此用户不能只在其中放置任何文本。
这是我的 UpdatedBy 字段:
<asp:BoundField DataField="UpdatedBy" HeaderText="Updated By" SortExpression="UpdatedBy" />
<asp:TemplateField HeaderText="Updated By">
<asp:itemTemplate>
<asp:Label ID="lblUpdatedBy" runat="server" Text='<% #Eval("UpdatedBy") %>' Width="30" ></asp:Label>
</asp:itemTemplate>
<asp:editItemTemplate>
<asp:TextBox ID="txtUpdatedBy" runat="server" CssClass="Gridview_EditItem" Text='<% #Bind("UpdatedBy") %>' Width="30" ></asp:TextBox>
</asp:editItemTemplate>
</asp:TemplateField>
我将更新代码放在 RowUpdating 事件中,但由于某种原因它不起作用。
protected void gvProductQuery_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow gr = gvProductQuery.Rows[e.RowIndex];
TextBox tb = gr.FindControl("txtUpdatedBy") as TextBox;
tb.Text = cUser.DomainLogin;
}
上面代码中的 tb 为 Null。请帮忙。或者有没有更简单的方法来做到这一点?我正在使用 VS2012
谢谢