【问题标题】:how can I define a javascript array per every gridview row?如何为每个 gridview 行定义一个 javascript 数组?
【发布时间】:2014-08-27 04:57:35
【问题描述】:

我有一个 gridview,我想使用 javascript array 将每个 gridview 行的用户权限传递给客户端,我在 gridview 行数据绑定事件中编写了下面的代码:

permissions+= "var permissions = ["; 
lbtnSendToApprove.Enabled = CheckPermission(document, project, user, null, eProjectAdminPermission.EditDocument);
                if (!lbtnSendToApprove.Enabled)
                {
                    lbtnSendToApprove.OnClientClick = string.Empty;
                    permissions += "Base64.encode('0' ) ,";
                }
                else
                    permissions += "Base64.encode('1' ) ,";

                lbtnReleaseDocument.Enabled = true;
                permissions += "Base64.encode('1' ) ,";

                lbtnAddSubversion.Enabled = CheckPermission(document, project, user, null, eProjectAdminPermission.EditDocument);
                if (!lbtnAddSubversion.Enabled)
                {
                    lbtnAddSubversion.OnClientClick = string.Empty;
                    permissions += "Base64.encode('0' ) ,";
                }
                else
                    permissions += "Base64.encode('1' ) ,";

                bool attachmentPermission = CheckPermission(document, project, user, null, eProjectAdminPermission.DetermineAttachment);
                if (!attachmentPermission)
                {
                    permissions += "Base64.encode('0' ) ];";
                }
                else
                    permissions += "Base64.encode('1' ) ];";
ScriptManager.RegisterClientScriptBlock(e.Row, e.Row.GetType(), "ContextMenuPermission", permissions , true);

但是这段代码只保留最后一行的值。我怎样才能每行都有这个数组?以及如何根据 gridview 行索引从这个数组中读取?

【问题讨论】:

    标签: c# javascript asp.net arrays gridview


    【解决方案1】:

    您可以尝试从您的数据源获取用户权限,这比尝试从 gridview 获取权限更容易,然后您向客户发送相同的“RegisterClientScriptBlock”

    或者您可以将它们应用于应用于 gridview 的相同客户端选择器样式,假设“用户”您可以调用您的 gridview 可以使用 jquery 执行此操作

    $ ('# users input tr [id ^ = permission]') 
    

    这样就可以得到gridview的所有行,你可以用for循环来操作..

    使用数据集的数据源是什么?

    【讨论】:

      【解决方案2】:

      好的,我通过以下方式解决了我的问题:

      首先我在javascript中定义了一个数组:(二维数组):

      var permissions=[];
      

      然后我将我的 rowDataBound 代码更改为:

      permissions += "permissions.push(["; 
      lbtnSendToApprove.Enabled = CheckPermission(document, project, user, null, eProjectAdminPermission.EditDocument);
                      if (!lbtnSendToApprove.Enabled)
                      {
                          lbtnSendToApprove.OnClientClick = string.Empty;
                          permissions += "Base64.encode('0' ) ,";
                      }
                      else
                          permissions += "Base64.encode('1' ) ,";
      
                      lbtnReleaseDocument.Enabled = true;
                      permissions += "Base64.encode('1' ) ,";
      
                      lbtnAddSubversion.Enabled = CheckPermission(document, project, user, null, eProjectAdminPermission.EditDocument);
                      if (!lbtnAddSubversion.Enabled)
                      {
                          lbtnAddSubversion.OnClientClick = string.Empty;
                          permissions += "Base64.encode('0' ) ,";
                      }
                      else
                          permissions += "Base64.encode('1' ) ,";
      
                      bool attachmentPermission = CheckPermission(document, project, user, null, eProjectAdminPermission.DetermineAttachment);
                      if (!attachmentPermission)
                      {
                          permissions += "Base64.encode('0' ) ]);";
                      }
                      else
                          permissions += "Base64.encode('1' ) ]);";
      ScriptManager.RegisterStartupScript(upDocuments, upDocuments.GetType(),"ContextMenuPermission"+e.Row.RowIndex.ToString(), permissions , true);//set permissions 
      

      实际上,我为所有行添加了行权限数组。 现在我可以根据gridview的rowIndex获得每一行权限。例如权限[0]是指第一行权限。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-05
        相关资源
        最近更新 更多