Я ищу способ обновить значение gridview без ссылки на страницу sh, я использовал updatepanel, и он отлично работает, когда я использую BoundField, но когда я использую ItemTemplate с меткой, данные gridview исчезают, когда я нажимаю кнопку обновления и мне нужно обновить страницу sh, чтобы получить обновленные данные.
и если я не использовал панель обновления, данные не исчезнут, но не будут обновлены без обновления страницы sh.
protected void button_1(object sender, EventArgs e)
{
using (SqlConnection sqlCon = new SqlConnection(@"Data Source= DESKTOP-U9437PU; initial Catalog = Mydb; Integrated Security =True;"))
{
sqlCon.Open();
using (SqlCommand cmd = new SqlCommand("select stat_id from requests_table where req_id ='1'", sqlCon))
{
using (SqlDataReader reader = cmd.ExecuteReader())
{
if (reader.Read())
{
Label_stat2.Text = reader["stat_id"].ToString();
}
}
}
if (Label_stat2.Text == "1")
{
string sql = "update requests_table set stat_id = '2' where req_id ='" 1 "'";
SqlCommand cmd1 = new SqlCommand(sql, sqlCon);
cmd1.ExecuteNonQuery();
cmd1.Dispose();
sqlCon.Close();
GridView1.DataBind();
UpdatePanel2.Update();
}
else
{
//do nothing
}
}
GridView1.DataBind();
UpdatePanel2.Update();
}
else
{
//do nothing
}
}
Разметка:
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
<ContentTemplate>
<asp:GridView ID="GridView1" CssClass="datatable" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" AllowPaging="True" PageSize="5"
AllowSorting="True" EnableViewState="false"><Columns >
<asp:TemplateField HeaderText="<%$Resources:mj.resource, req_id%>" SortExpression="req_id">
<ItemTemplate >
<asp:Label ID="req_id" runat="server"></asp:Label></ItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="<%$Resources:mj.resource, req_subject%>" SortExpression="req_subject">
<ItemTemplate >
<asp:Label ID="req_subject" runat="server"></asp:Label></ItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="<%$Resources:mj.resource, req_priority%>" SortExpression="priority_id">
<ItemTemplate >
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="ButtonUnder1" runat="server" CommandArgument='<%# Bind("req_id") %>' CssClass="my_btn" OnClick="button_1" UseSubmitBehavior="false" OnClientClick = "Confirm2()" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerSettings Mode="NumericFirstLast" Position="Bottom" PageButtonCount="5" NextPageText=">>" PreviousPageText="<<" />
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>