我有四列的表見截圖在這裏:如何按鈕單擊事件後改變gridview的行值
但我需要兩列在表名和性別見截圖在這裏:
顯示在這個類型,但單擊按鈕行值我已經要求後GridView控件按鈕出側的GridView如將改變行值1,2可以代替男性和女性,這是我的要求。
我有四列的表見截圖在這裏:如何按鈕單擊事件後改變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