Установка EditIndex GridView делает элементы в EditItemTemplate не обновленными - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть вид сетки как

<asp:GridView ID="grdArticles" runat="server" 
    OnRowEditing="grdArticles_OnRowEditing">
  <Columns>
    <asp:TemplateField>
      <ItemTemplate>                                                                    
        <%#Eval("num") %> st                                                                
      </ItemTemplate>                                                                
      <EditItemTemplate>
        <asp:TextBox ID="txtNum" Width="30px" Text='<%#Eval("num") %>' 
          runat="server"/>                                                                
      </EditItemTemplate>
   </asp:TemplateField>
   <asp:CommandField ShowEditButton="True" ShowDeleteButton="True" />
  </Columns>
</asp:GridView>

, который заполнен

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
      grdArticles.DataSource = Repo.GetArticles();
      grdArticles.DataBind();
    }        
}

, а grdArticles_OnRowEditing похож на

protected void grdArticles_OnRowEditing(object sender, GridViewEditEventArgs e)
{
  grdArticles.EditIndex = e.NewEditIndex;
}

Когда я нажимаю кнопку редактирования,текстовое поле появится вместо чистого текста, но в нем не будет текста, соответствующего num.Вместо этого он становится пустым.

Почему?

1 Ответ

0 голосов
/ 13 февраля 2019

Добавить grdArticles.DataBind(); после обновления EditIndex, как показано ниже:

protected void grdArticles_OnRowEditing(object sender, GridViewEditEventArgs e)
{
  grdArticles.EditIndex = e.NewEditIndex;
  grdArticles.DataBind();

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...