Enabled 按钮变灰 怎样使其点击不触发事件

jessyjq 2015-02-28 10:52:11
如题 LinkButton已绑定点击事件 根据条件想让按钮变灰 并不能点击触发事件 Enabled 后 该怎么实现? 网上找找都是要点击触发的 也是醉啦 求大神指导 本人新手。。。。。。。。 急求!!!
...全文
477 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你这样写法就算enable=true,貌似也不会回发执行后台代码吧?因为你执行了js的OpenDiv('');return false; 然后你的框是OpenDiv('')弹出的吧,如果不想改js代码,那么你的判断要改下
 LinkButton lb1 = (LinkButton)e.Row.FindControl("LinkButton1");
                if (e.Row.Cells[].Text == "")
                {
                    lb1.Enable = false;
                }
else
{
      lb1.OnClientClick = "OpenDiv('');return false;";
}
jessyjq 2015-02-28
  • 打赏
  • 举报
回复
引用 5 楼 jessyjq 的回复:
[quote=引用 3 楼 starfd 的回复:] 你的描述清楚点,如果仅仅是已经设定了点击事件,然后按条件设置了Enable=false后,点击已经不会触发后台事件 如果是js控制变灰,而不是enable=false,那你可以设置html的属性disabled=disabled
protected void gv1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { LinkButton lb1 = (LinkButton)e.Row.FindControl("LinkButton1"); lb1.OnClientClick = "OpenDiv('');return false;"; if (e.Row.Cells[].Text == "") { lb1.Visible = false; } } } 按钮是已经变灰 但在页面上点 还是会弹出框[/quote] 是 lb1.Enabled = false;
  • 打赏
  • 举报
回复
lb1.OnClientClick = "OpenDiv('');return false;"; 改成 if(lb1.Enable) { lb1.OnClientClick = "OpenDiv('');return false;"; } 试试
jessyjq 2015-02-28
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
你的描述清楚点,如果仅仅是已经设定了点击事件,然后按条件设置了Enable=false后,点击已经不会触发后台事件 如果是js控制变灰,而不是enable=false,那你可以设置html的属性disabled=disabled
protected void gv1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { LinkButton lb1 = (LinkButton)e.Row.FindControl("LinkButton1"); lb1.OnClientClick = "OpenDiv('');return false;"; if (e.Row.Cells[].Text == "") { lb1.Visible = false; } } } 按钮是已经变灰 但在页面上点 还是会弹出框
jessyjq 2015-02-28
  • 打赏
  • 举报
回复
引用 2 楼 Lucky_502 的回复:
满足条件的就直接将LinkButton的enabled赋值为false就OK了
那样在该按钮上凭空按 还是会触发事件 我弄得是弹出框 依旧弹出啦
  • 打赏
  • 举报
回复
你的描述清楚点,如果仅仅是已经设定了点击事件,然后按条件设置了Enable=false后,点击已经不会触发后台事件 如果是js控制变灰,而不是enable=false,那你可以设置html的属性disabled=disabled
Lucky_502 2015-02-28
  • 打赏
  • 举报
回复
满足条件的就直接将LinkButton的enabled赋值为false就OK了
fly_lalala 2015-02-28
  • 打赏
  • 举报
回复
enabled = false 不就不能点了
程序猿老曾 2015-02-28
  • 打赏
  • 举报
回复
引用 10 楼 jessyjq 的回复:
[quote=引用 9 楼 cxzzwb 的回复:] 我明白你的意思!!因为你Enabled的只是后台的事件,对于javascript事件它依旧可以响应是吧!! 这个问题曾经也困扰我一段时间!! 我的解决方法是这样的!!注意我的HTML代码 HTML Code

<asp:LinkButton ID="LinkDataDelete" runat="server"  Text="返还确认"
                     PostBackUrl='<%# String.Format("~/Asp_Forms/frm_MachineTakeOut_Detail.aspx?Guid={0}&Opr={1}",Eval("Guid"),"C") %>'
                     onclick="LcmdDataDelete_Click" ></asp:LinkButton>
这是在GridView中的一个LinkButton,可以看到我的这个控件并没有onClientClick事件!!因为我把这个事件注册在后台!! C# Code

((LinkButton)e.Row.FindControl("LinkDataDelete")).Attributes.Add("onclick", "javascript:return confirm('您是否对此设备进行返还确认?')");
也就是说后台判断条件,条件成立的就为LinkButton注册一个前台事件!!如果条件不成立就不注册!!这样的话就能避免你说的这个问题了!!
感谢大神 解决了我的疑惑[/quote] 当初我也一直在烦躁这个事呢
jessyjq 2015-02-28
  • 打赏
  • 举报
回复
引用 9 楼 cxzzwb 的回复:
我明白你的意思!!因为你Enabled的只是后台的事件,对于javascript事件它依旧可以响应是吧!! 这个问题曾经也困扰我一段时间!! 我的解决方法是这样的!!注意我的HTML代码 HTML Code

<asp:LinkButton ID="LinkDataDelete" runat="server"  Text="返还确认"
                     PostBackUrl='<%# String.Format("~/Asp_Forms/frm_MachineTakeOut_Detail.aspx?Guid={0}&Opr={1}",Eval("Guid"),"C") %>'
                     onclick="LcmdDataDelete_Click" ></asp:LinkButton>
这是在GridView中的一个LinkButton,可以看到我的这个控件并没有onClientClick事件!!因为我把这个事件注册在后台!! C# Code

((LinkButton)e.Row.FindControl("LinkDataDelete")).Attributes.Add("onclick", "javascript:return confirm('您是否对此设备进行返还确认?')");
也就是说后台判断条件,条件成立的就为LinkButton注册一个前台事件!!如果条件不成立就不注册!!这样的话就能避免你说的这个问题了!!
感谢大神 解决了我的疑惑
程序猿老曾 2015-02-28
  • 打赏
  • 举报
回复
我明白你的意思!!因为你Enabled的只是后台的事件,对于javascript事件它依旧可以响应是吧!! 这个问题曾经也困扰我一段时间!! 我的解决方法是这样的!!注意我的HTML代码 HTML Code

<asp:LinkButton ID="LinkDataDelete" runat="server"  Text="返还确认"
                     PostBackUrl='<%# String.Format("~/Asp_Forms/frm_MachineTakeOut_Detail.aspx?Guid={0}&Opr={1}",Eval("Guid"),"C") %>'
                     onclick="LcmdDataDelete_Click" ></asp:LinkButton>
这是在GridView中的一个LinkButton,可以看到我的这个控件并没有onClientClick事件!!因为我把这个事件注册在后台!! C# Code

((LinkButton)e.Row.FindControl("LinkDataDelete")).Attributes.Add("onclick", "javascript:return confirm('您是否对此设备进行返还确认?')");
也就是说后台判断条件,条件成立的就为LinkButton注册一个前台事件!!如果条件不成立就不注册!!这样的话就能避免你说的这个问题了!!

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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