0

我有一个模式弹出 div,在单击文本框时显示。但是,如果用户有权使用此功能,我只需要此功能,否则我想完全忽略与被单击的文本框相关的所有代码(即,用户只需在文本框中键入值)。如何设置文本框单击的 JQuery 代码,仅基于从数据库的代码隐藏中检索到的布尔变量发生?

4

3 回答 3

2

您可以使用文字控件扭曲脚本,并在具有以下权限的情况下打开/关闭它:

<asp:Literal runat="server" id="MoreScript" EnableViewState="false">
<script>
  functions MoreToDo(){

  }
</script>
</asp:Literal>

并且在您背后的代码上,只需MoreScript.Visible根据您的权限进行设置。我选择 Literal 是因为您可以将其添加到标题中并且不会留下任何标记,并且您可以直接查看页面上的 javascript 代码。

于 2013-03-27T16:57:20.450 回答
1

我可能会做这样的事情

<script>
       if ("<%= CodeBehindProperty %>" == "true")
       {
             //Attach click events
       }
</script>
于 2013-03-27T16:38:01.573 回答
1

您可以尝试使用 RegisterStartupScript 方法从代码隐藏中注册 jQuery 函数。

public void Page_Load(Object sender, EventArgs e)
{
    String scriptString = @"<script type='text/javascript'>
    $(document).ready(function($){
       $('#Element').click(function(){
       //open popup
       });
    }
    </script>";
    if(hasPermission())
        this.RegisterStartupScript("PopUpScript", scriptString);
 }
于 2013-03-27T16:55:08.627 回答