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を使用しています
ありがとう