你好,
你需要使用updatepanel 实现页面的刷新。因为需要点击gridview中的Button来更新其他的gridview的数据,所以来说,你需要设置triggers为其他的控件。
我写了个只有两个gridview,但是点击各自的按钮都会去操作对方的行数据。
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="panle1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="gridview2" EventName="RowCommand" />
</Triggers>
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowCommand="GridView1_RowCommand" EnableViewState="true">
<Columns>
<asp:TemplateField HeaderText="IDdd">
<ItemTemplate>
<asp:TextBox ID="txt" runat="server" Text="gridview1" />
<asp:Button ID="btn" runat="server" Text="xx" CommandName="click"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="panel2" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="GridView2" EventName="RowCommand" />
</Triggers>
<ContentTemplate>
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" OnRowCommand="GridView2_RowCommand" EnableViewState="true" OnRowDataBound="GridView2_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="IDdd">
<ItemTemplate>
<asp:TextBox ID="txt" runat="server" Text="gridview2" />
<asp:Button ID="btn" runat="server" Text="xx" CommandName="click"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
}
}
protected void btn_Click(object sender, EventArgs e)
{
}
public void BindData()
{
string sql = "select * from Cus";
string connstring = "xx;";
SqlConnection conn = new SqlConnection(connstring);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds, "aa");
conn.Close();
GridView1.DataSource = ds;
GridView1.DataBind();
GridView2.DataSource = ds;
GridView2.DataBind();
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "click") {
//这里更新第二个gridview的数据
GridViewRow gvr = GridView2.Rows[2];
TextBox tx = (TextBox)gvr.FindControl("txt");
tx.Text = "10";
}
}
protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)
{
}
protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
{
}