2016-11-28 38 views
0

我是Jquery的新手,对于面临的以下问题,将不胜感激。 我有一个GridView,点击Gridview(lnkView)的一行,会打开一个包含html下拉列表(#projectcode)元素的Jquery对话框(div:#dialog)。我想隐藏点击某些行的下拉菜单。如何去做?下面 代码:HTML在GridView的特定行上隐藏jQuery对话框中的html dropdownlist

<script type="text/javascript">$("[id*=lnkView]").live("click", function() {

 var datesent = $(this).next().text(); 

     var subject = $(this).text(); 
     var row = $(this).closest("tr"); 
     $("#body").html($(".body", row).html()); 

     $("#dialog").dialog({ 
      width: 700, 
      title: subject, 
      buttons: [{ 
       id: "ok", text: "Ok", 
       click: function() { 
        $(this).dialog('close'); 
       } 
      }] 
     }); 
     return false; 
    }); 
</script> 

    <asp:GridView ID="gvEmails" runat="server" DataKeyNames="MessageNumber" AutoGenerateColumns="False"> 
     <Columns> 
      <asp:TemplateField HeaderText="Subject"> 
       <ItemTemplate> 
        <asp:LinkButton ID="lnkView" runat="server" Text='<%# Eval("Subject") %>' /> 
        <asp:LinkButton ID="lnkDateSent" runat="server" Text='<%# Eval("DateSent") %>' /> 
        <span class="body" style="display: none"> 
         <%# Eval("Body") %></span> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 
    <div id="dialog" style="display: none" runat="server"> 
     <span id="body"></span> 
     <select id="projectcode" runat="server"> 
      <option value="">Please select...</option> 
      <option value="00111">Fedex - 001</option> 
      <option value="00112">UPS - 002</option> 
     </select> 

     <br /> 
    </div>` 

及以下的C#代码

for (int i = count; i >= 1; i--) 
     { 
      Email email = new Email() 
      { 
       MessageNumber = i, 
       Subject = message.Headers.Subject, 
       DateSent = message.Headers.DateSent, 
       GUID = pop3Client.GetMessageUid(i), 
      }; 

      SqlCommand comm = new SqlCommand("select GUID from Sample where  GUID = '" + email.GUID + "' ", con); 
      SqlDataReader dr = comm.ExecuteReader(); 
      if (dr.Read()) 
      { 
       if (email.GUID == dr.GetString(0)) 
       { 
        //The below condition what I want to achieve for a specific row which has email.GUID == dr.GetString()-- GUID 
        //projectcode.Attributes["disabled"] = "disabled"; 
        // projectcode.Visible = false; 


       } 
      } 
      dr.Close(); 
      con.Close(); 

}

回答

0

如果我理解你正确,你想要一个onclick功能,所以当你点击在你的gridview中的一行它会下载信息。当你再次点击它时,你想隐藏它。

所以我们可以说这是你的gridview中的一行,aria-expanded设置为true。

<tr class="toggle-display" aria-expanded="true"> 
<td>@information.Stuff</td> 
</tr> 

,在这里你将在你的下拉列表中显示的消息。

<tr class="display-message"> 
     <span>Information:</span> @information.Things 
</tr> 

jquery看起来像这样。

$(document).ready(function() { 
$(document).on('click', '.toggle-display', function (event) { 
    event.preventDefault(); 
    if ($(this).next('.display-message').hasClass('expanded')) { 
     $(this).next('.display-message').removeClass('expanded'); 
     $(this).attr('aria-expanded', "false"); 
    } else { 
     $(this).next('.display-message').addClass('expanded', 1000); 
     $(this).attr('aria-expanded', "true"); 
    } 
}); 
+0

您好,只是为了更清楚我想要的是当我在pageLoad的GridView的负载我要检查是否将所选行的表或not.If记录匹配存在的数据中发现了特定的行,然后我想禁用该行的下拉列表。我在每行的linkBut​​ton上有一个点击事件。 – tkokane