改变选中的Button背景样式

wulg10 2010-11-15 04:45:47
一个Panl里循环出N个Button,然后选中其中一个Button,它的样式就改变,其他都是默认样式。
Button是有事件的,是重新跳转到本页面并传一个参数的。


void btn_Command(object sender, CommandEventArgs e)
{
Button btn = sender as Button;
btn.CssClass = ViewState["Color"].ToString();
Response.Redirect("" + url + "" + btn.CommandArgument.ToString());
}


哪位有这方面的案例等?求教!
...全文
705 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
boringame 2010-11-15
  • 打赏
  • 举报
回复

把跳转去掉:
void btn_Command(object sender, CommandEventArgs e)
{
Button btn = sender as Button;
btn.CssClass = ViewState["Color"].ToString();
//Response.Redirect("" + url + "" + btn.CommandArgument.ToString());
}


这样应该可以了。

Csdn好帮手——《Csdn收音机》即使监视社区动态!
mangshuo 2010-11-15
  • 打赏
  • 举报
回复
用JS搞吧。就一个样式而以。
zbihong 2010-11-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zorrowust 的回复:]
点了哪个按钮,就把这个按钮的信息(比如说是第几个按钮)保存在session,cookies里面,或者直接页面传值,然后在页面的page_load里面取出来这个值,用js(针对input type=button)或者C#(针对asp:button)直接给这个按钮加样式
[/Quote]
UP!保存在session,cookies里面,或者直接页面传值,都可用!
toxxj 2010-11-15
  • 打赏
  • 举报
回复
其实也是可以在客户端来实现的, 在生成button时给每个button添加onclientclick事件调用js代码,当然得把生成的clientid作为参数传到js代码中去,这样就可以前台改变样式了
hookyzlr 2010-11-15
  • 打赏
  • 举报
回复

<style>
.btbg
{
background-color:Red;
}
.btbg:hover
{
background-color:Blue;
}
</style>
<asp:Panel ID="Panel1" runat="server">

</asp:Panel>
[code=C#]
Button bt;
for (int i = 0; i < 10; i++)
{
bt = new Button();
bt.ID = i.ToString();
bt.Width = 100;
bt.Height = 20;
bt.Text = i.ToString();
bt.CssClass = "btbg";
Panel1.Controls.Add(bt);
}

[/code]
zcxverygood123456 2010-11-15
  • 打赏
  • 举报
回复
孟子E章,厉害啊,哪天能达到你的这个境界
yucuihaimeng 2010-11-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 net_lover 的回复:]

C# code
<%@ Page Language="C#" EnableViewState="false" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="s……
[/Quote]

高手已出招
wuhuabucai 2010-11-15
  • 打赏
  • 举报
回复
孟子一出手
咱就等接分
孟子E章 2010-11-15
  • 打赏
  • 举报
回复
<%@ Page Language="C#" EnableViewState="false" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

protected void b_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
HttpCookie x = new HttpCookie("id", btn.ID);
Response.Cookies.Add(x);
Response.Redirect(Request.UrlReferrer.ToString());
}

protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 6; i++)
{
Button b = new Button();
b.ID = "B" + i.ToString();
b.Text = i.ToString();
b.Click +=new EventHandler(b_Click);
p.Controls.Add(b);
}

if (Request.Cookies["id"] != null)
{
Button btn = p.FindControl(Request.Cookies["id"].Value) as Button;
btn.BackColor = System.Drawing.Color.Red;
}

}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:Panel ID="p" runat="server"></asp:Panel>
</form>
</body>
</html>
孟子E章 2010-11-15
  • 打赏
  • 举报
回复
你还需要记录也该btn.ID,
Page_load里面读取 ViewState["Color"],设置这个ID的CSS
wulg10 2010-11-15
  • 打赏
  • 举报
回复
我是会重新刷新下页面的!
hi_liuwu 2010-11-15
  • 打赏
  • 举报
回复
幹嘛不直接在客戶端用JS來做呢

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧