2013-03-18 4 views
0

У меня есть вид сетки, привязанный к объекту 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

Благодаря

ответ

1

попробовать это:

protected void gvProductQuery_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    gvProductQuery.EditIndex = e.NewEditIndex; 
    gvProductQuery.DataBind(); 
} 

protected void gvProductQuery_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    GridViewRow row = gvProductQuery.Rows[gvLevels.EditIndex]; 
    TextBox tb = row.FindControl("txtUpdatedBy") as TextBox; 
    tb.Text = cUser.DomainLogin; 
} 
+0

Это row.FindControl ("txtUpdatedBy") по-прежнему возвращает нуль. Я также пытаюсь запустить строку row.Controls, чтобы увидеть все ID элемента управления, и все они являются нулевыми. Если я посмотрю на уникальный идентификатор элементов управления, это серия, подобная этой ctl00 $ FeaturedContent $ gvProductQuery $ –

+0

ok вы определили обработчик для «RowEditing»? –

+0

Нет, я не определил событие RowEditing. –

Смежные вопросы