У меня есть сетка, созданная на странице, где я хочу предоставить пользователю кнопку редактирования, чтобы щелкнуть в ней. Однако проблема в том, что строка сетки становится редактируемой только при повторном нажатии кнопки редактирования.Не уверен, что здесь происходит не так, любая помощь будет оценена.
Еще один момент - мой вид сетки отображается на странице только одним нажатием кнопки и, следовательно, отсутствует в событии page_load.
Отправка фрагментов кода:
// МОЙ код Aspx
<Columns>
<asp:TemplateField HeaderText="Slice" SortExpression="name">
<ItemTemplate>
<asp:Label ID="lblslice" Text='<%# Eval("slice") %>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="lblslice" Text='<%# Eval("slice") %>' runat="server"></asp:Label>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Metric" SortExpression="Description">
<ItemTemplate>
<asp:Label ID="lblmetric" Text='<%# Eval("metric")%>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="lblmetric" Text='<%# Eval("metric")%>' runat="server"></asp:Label>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Original" SortExpression="Type">
<ItemTemplate>
<asp:Label ID="lbloriginal" Text='<%# Eval("Original")%>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="lbloriginal" Text='<%# Eval("Original")%>' runat="server"></asp:Label>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="WOW" SortExpression="Market">
<ItemTemplate>
<asp:Label ID="lblwow" Text='<%# Eval("WOW")%>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="lblwow" Text='<%# Eval("WOW")%>' runat="server"></asp:Label>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Change" SortExpression="Market" >
<ItemTemplate>
<asp:Label ID="lblChange" Text='<%# Eval("Change")%>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtCustomerID" Text='<%# Eval("Change") %> ' runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField HeaderText="Edit" ShowEditButton="True" />
</Columns>
</asp:GridView>
// Мой код:
protected void Page_Load(object sender, EventArgs e)
{
}
public void populagridview1(string slice,string fromdate,string todate,string year)
{
SqlCommand cmd;
SqlDataAdapter da;
DataSet ds;
cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "usp_geteventchanges";
cmd.Connection = conn;
conn.Open();
SqlParameter param1 = new SqlParameter("@slice", slice);
cmd.Parameters.Add(param1);
SqlParameter param2 = new SqlParameter("@fromdate", fromdate);
cmd.Parameters.Add(param2);
SqlParameter param3 = new SqlParameter("@todate", todate);
cmd.Parameters.Add(param3);
SqlParameter param4 = new SqlParameter("@year", year);
cmd.Parameters.Add(param4);
da = new SqlDataAdapter(cmd);
ds = new DataSet();
da.Fill(ds, "Table");
GridView1.DataSource = ds;
GridView1.DataBind();
conn.Close();
}
protected void ImpactCalc(object sender, EventArgs e)
{
populagridview1(ddl_slice.SelectedValue, dt_to_integer(Picker1.Text), dt_to_integer(Picker2.Text), Txt_Year.Text);
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
gvEditIndex = e.NewEditIndex;
Gridview1.DataBind();
}
Макет моей страницы
Этот экран редактирования появляется после двойного нажатия кнопки "Изменить". Вид сетки отображается при нажатии кнопки "Рассчитать влияние".Данные взяты из внутренней хранимой процедуры, которая запускается при нажатии кнопки «Рассчитать влияние»