如何按钮单击事件后改变gridview的行值
我有四列的表见截图在这里:如何按钮单击事件后改变gridview的行值
但我需要两列在表名和性别见截图在这里:
显示在这个类型,但单击按钮行值我已经要求后GridView控件按钮出侧的GridView如将改变行值1,2可以代替男性和女性,这是我的要求。
您需要从数据库或数据表中的数据库中提取数据,并将其作为DataSource分配给GridView并在该GridView上调用DataBind。现在在RowDataBound事件中,将值和赋值分配给UI标签/字面值。
下面是aspx页面中的GridView。
<asp:GridView runat="server" AutoGenerateColumns="false" ID="GridView1" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Employee Name">
<ItemTemplate>
<asp:Literal ID="ltrlEmpName" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Employee Gender">
<ItemTemplate>
<asp:Literal ID="ltrlEmpGender" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
在后面的代码中,假设您想要在页面加载或任何其他方法中将数据源分配给此GridView。以下是它的代码。请注意,在这里的示例中,为了简单起见,我采用了虚拟DataTable和填充值,您需要从db值填充该DataTable。
protected void Page_Load(object sender, EventArgs e)
{
// Dummy data table below, that needs to be replaced by datatable/dataset fetched from database.
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("EmpName", typeof(string)));
dt.Columns.Add(new DataColumn("EmpGender", typeof(int)));
DataRow dr1 = dt.NewRow();
dr1["EmpName"] = "Romesh";
dr1["EmpGender"] = 1;
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["EmpName"] = "Sandya";
dr2["EmpGender"] = 2;
dt.Rows.Add(dr2);
// Bind the datasource to gridview.
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void GridView1_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
if (e.Row.RowType == System.Web.UI.WebControls.DataControlRowType.DataRow)
{
System.Web.UI.WebControls.Literal ltrlEmpName = (System.Web.UI.WebControls.Literal)e.Row.FindControl("ltrlEmpName");
System.Web.UI.WebControls.Literal ltrlEmpGender = (System.Web.UI.WebControls.Literal)e.Row.FindControl("ltrlEmpGender");
// Bind employee name to its label.
ltrlEmpName.Text = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "EmpName"));
// Bind employee gender to its label based on its value.
if (Convert.ToString(DataBinder.Eval(e.Row.DataItem, "EmpGender")) == "1")
{
ltrlEmpGender.Text = "Male";
}
else if (Convert.ToString(DataBinder.Eval(e.Row.DataItem, "EmpGender")) == "2")
{
ltrlEmpGender.Text = "Female";
}
else
{
ltrlEmpGender.Text = "Other";
}
}
}
您将按照下表列出。
我的代码有错误 –
'ASP.gradedividing_aspx'没有包含 'GridView1_RowDataBound'的定义,也没有找到接受'ASP.gradedividing_aspx'类型的第一个参数的扩展方法'GridView1_RowDataBound' )使用指令或程序集引用?)\t C:\ Users \ romesh \ GridviewTutorial \ GradeDividing.aspx –
你有没有把我的答案中提到的“protected void GridView1_RowDataBound ....”放在你的.cs文件中? –
它不是一个自由职业者的网站,你应该尝试自己的东西,然后问一个问题。 – AsifAli72090