在单击事件上更改 GridView 自定义按钮文本和 Css
Change GridView Custom Button Text and Css on click event
我正在做一个项目,我正在为管理员创建一个仪表板。
我有一个 UsersGridView,其中显示了注册用户的数据。
使用 Gridview 的 Template 字段,我创建了一个按钮,允许 Admin 使用 锁定或启用用户使用系统。
<asp:TemplateField HeaderText="LockoutStatus">
<ItemTemplate>
<asp:Button ID="LockoutStatus" runat="server" CausesValidation="false" CommandName="LockoutStatus" Text="Enabled"
CommandArgument='<%# Eval("Id") %>' />
</ItemTemplate>
</asp:TemplateField>
在 RowCommand 事件中,如果用户被系统锁定,我如何更改按钮的 CssClass 和文本。
您可以通过多种方式更改 CssClass。
使用 RowDataBound 事件。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//check if the row is d datarow
if (e.Row.RowType == DataControlRowType.DataRow)
{
//cast the row back to a datarowview
DataRowView row = e.Row.DataItem as DataRowView;
//use findcontrol to locate the butotn
Button btn = e.Row.FindControl("LockoutStatus") as Button;
//change the class based on a column value
if (row["ColumnName"].ToString() == "LockedOut")
{
btn.CssClass = "ClassA";
}
}
}
或者在带有三元运算符的 aspx 页面上。
<asp:Button ID="LockoutStatus" runat="server"
CssClass='<%# Eval("ColumnName").ToString() == "LockedOut" ? "ClassA" : "ClassB" %>'
或者在 RowCommand 事件中如您所愿。您可以使用 CommandSource 并将其转换为 Button。
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
Button btn = e.CommandSource as Button;
btn.CssClass = "ClassA";
}
我正在做一个项目,我正在为管理员创建一个仪表板。 我有一个 UsersGridView,其中显示了注册用户的数据。 使用 Gridview 的 Template 字段,我创建了一个按钮,允许 Admin 使用 锁定或启用用户使用系统。
<asp:TemplateField HeaderText="LockoutStatus">
<ItemTemplate>
<asp:Button ID="LockoutStatus" runat="server" CausesValidation="false" CommandName="LockoutStatus" Text="Enabled"
CommandArgument='<%# Eval("Id") %>' />
</ItemTemplate>
</asp:TemplateField>
在 RowCommand 事件中,如果用户被系统锁定,我如何更改按钮的 CssClass 和文本。
您可以通过多种方式更改 CssClass。
使用 RowDataBound 事件。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//check if the row is d datarow
if (e.Row.RowType == DataControlRowType.DataRow)
{
//cast the row back to a datarowview
DataRowView row = e.Row.DataItem as DataRowView;
//use findcontrol to locate the butotn
Button btn = e.Row.FindControl("LockoutStatus") as Button;
//change the class based on a column value
if (row["ColumnName"].ToString() == "LockedOut")
{
btn.CssClass = "ClassA";
}
}
}
或者在带有三元运算符的 aspx 页面上。
<asp:Button ID="LockoutStatus" runat="server"
CssClass='<%# Eval("ColumnName").ToString() == "LockedOut" ? "ClassA" : "ClassB" %>'
或者在 RowCommand 事件中如您所愿。您可以使用 CommandSource 并将其转换为 Button。
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
Button btn = e.CommandSource as Button;
btn.CssClass = "ClassA";
}