ASP.如何执行动态JavaScript并防止回发
ASP.Net How do I execute a dynamic JavaScript and prevent a postback
我有一个ASP按钮和2个标签。
<asp:Button runat="server" ID="btnHide" />
<asp:Label runat="server" ID="lblName"></asp:Label>
<asp:Label runat="server" ID="lblPosition"></asp:Label>
我已经创建了一个动态JS脚本。
string jsbtnHide = @"document.getElementByID('" + lblName.ClientID + @"').value = '';
document.getElementByID('" + lblPosition.ClientID + @"').style.display = 'none';";
我将脚本分配给按钮。我试过"OnClick"answers"OnClientClick"。
btnHide.Attributes.Add("OnClick", jsbtnHide);
然而,我不能让脚本成功执行,没有回发。我已经尝试添加OnClientClick="返回false;"动态和ascx文件。动态似乎被忽略了,尽管它在FireBug中看起来是正确的。OnClick似乎不能阻止Postback。当脚本运行时,lblName不会更改为",我一次也没有让这个工作。
我做错了什么?我已经看了好几天了
你可以使用一个很好的技巧只需将点击代码更改为
string jsbtnHide = @"document.getElementByID('" + lblName.ClientID + @"').value = '';
document.getElementByID('" + lblPosition.ClientID + @"').style.display = 'none';return;";
添加返回到代码的末尾以防止调用回发事件
尝试将你打算在JS函数中执行的JS代码包装起来,然后将按钮与函数和返回false的附加语句连接起来。
像这样:
public string DynamicJSCode; //Page level
//Page_Load
DynamicJSCode = @"function doSomeWork(){document.getElementById('" + lblName.ClientID + @"').innerText= '';
document.getElementById('" + lblPosition.ClientID + @"').style.display = 'none'; return false;}";
然后你可以使用属性(或任何其他方式)在你的页面中嵌入上面的JS。
<script type='text/javascript' language='javascript'>
<%= DynamicJSCode %>
</script>
然后将功能连接到按钮,如下所示:
btnHide.Attributes.Add("onclick", "return doSomeWork();");
为了防止按钮控件不回发,您必须使用return;
调用(毫无疑问)。
这将稍微更具可维护性(以我的理解),然后您也不需要后面代码中附加的按钮事件处理程序附件。在标记本身中,您可以将JS函数调用分配给OnClientClick
事件,并且执行的代码将始终动态生成。
<asp:Button runat="server" ID="btnHide" OnClientClick='doSomeWork();return false;' />
无论功能的大小或重要性如何,总是建议编写具有更好可维护性的代码。
希望有帮助!
相关文章:
- 如何使Javascript动态html表及其上的事件
- 使用JavaScript动态插入DIV的成本有多高
- Javascript动态变量(添加了随机数)
- JavaScript-动态SVG-onload属性-未触发事件
- 传递给 PHP 表单时 JavaScript 动态变量上的未定义索引
- 如何在没有ajax的情况下将javascript动态数据发送到php变量
- 使用javascript动态创建html内容/元素
- 带有多个答案选项的Javascript动态数组窗口
- JavaScript:动态扩展原型是一种糟糕的做法
- Javascript+动态菜单+当前链接样式(CSS)+基于PHP的网站
- javascript动态内容与选择长运行脚本
- Javascript:动态更改CSS文件+Cookie
- 使用javascript动态计算top属性
- 使用javascript动态选择幻灯片放映的图像
- 如何访问用javascript动态生成的textarea的文本内容
- Javascript动态表,每个单元格都有一个onmouse事件
- Php,Javascript-动态表单id's和动态验证
- JavaScript动态附加到搜索字段
- 如何将CSRF令牌添加到javascript动态生成的表单中
- 从Javascript动态构建JSON对象列表