我正在一个项目中,我正在为Admin创建仪表板。 我有一个 UsersGridView ,其中显示了已注册用户的数据。 在 Gridview 中使用 Template 字段创建了一个按钮,该按钮允许 Admin 进行锁定或< strong>启用用户使用系统。
<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和文本。
答案 0 :(得分:1)
可以通过多种方式更改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";
}