2012-02-23 66 views
0

我有以下的asp:GridView控件:替代使用隐藏字段的GridView

<asp:GridView ID="myGridView" runat="server" OnRowDataBound="DataBound"> 
     <Columns> 
      <asp:TemplateField HeaderText="Title"> 
      <ItemTemplate>      

        <input id="docKey_cell" class="key" runat="server" type="hidden"/> 
        <input id="docFname_cell" class="fileName" runat="server" type="hidden"/> 
        <span class="docTitle"><%# Eval("Title")%></span> 

      </ItemTemplate> 
      </asp:TemplateField> 
    ... 

在一行上双击我通过jQuery打开从隐藏字段传递数据的对外窗口。在这个特定的情况下,我只需要传递一个documentID(作为字符串)和该行中呈现的文档的物理文件名,因此可以保存进一步的SQL Query以在新打开的对话框中获取此信息。

到现在为止,我经常使用这种技术,当我需要有小数据与JQuery一起使用。

但是我想知道这是一种可接受的做法还是有更好的方法可以提高性能或保养性?

回答

0

打开一个窗口似乎是错误的。由于您已经在使用jQuery,因此您可以使用它来保存数据,请求send off an Ajax

作为使用隐藏字段的替代方法,您可以立即开始使用HTML5 data-value attributes

+0

在这种情况下,我需要打开一个因为从那里我需要从远程下载物理文件。我发现有必要打开该外部窗口,只需在那里弹出“保存/打开”下载的文件。 – Francesco 2012-02-23 15:04:17

1

我认为更好的方法之一是添加自定义属性与您的需要和使用jQuery来访问该属性的信息的控制,我认为这是一个更好的办法

+0

这种方式如果用户双击可以通过$(this).attr(“attributeName”)访问信息,这将为您节省很多麻烦,获得正确的隐藏字段 – 2012-02-23 15:00:39

+0

我编辑了代码:我将使用CSS类来轻松地从JQuery中检索正确的隐藏文件。使用隐藏字段是否有其他缺点?否则,继续使用它们而不是引入自定义属性似乎不太糟糕。而且,碰巧我有不同的数据被提供为隐藏字段,因此并不总是相同的。 – Francesco 2012-02-23 15:14:43

+0

+1但是,由于使用自定义attrobutes也将是一个可能的选择! – Francesco 2012-02-23 15:15:22