У меня есть вид сетки, привязанный к объекту ObjectDataSource. После того как пользователи завершили обновление своих данных, я хотел бы указать их имя пользователя или идентификатор пользователя в столбце «Обновленный», чтобы отслеживать, кто обновил какую запись. Столбец updatedBy может быть скрытым или только на странице, поэтому пользователи не могут просто помещать туда какой-либо текст.Обновлено По столбцу в Gridview
Вот мой 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
Благодаря
Это row.FindControl ("txtUpdatedBy") по-прежнему возвращает нуль. Я также пытаюсь запустить строку row.Controls, чтобы увидеть все ID элемента управления, и все они являются нулевыми. Если я посмотрю на уникальный идентификатор элементов управления, это серия, подобная этой ctl00 $ FeaturedContent $ gvProductQuery $ –
ok вы определили обработчик для «RowEditing»? –
Нет, я не определил событие RowEditing. –