在AJAX选项卡内引用gridview中的链接按钮

时间:2012-07-01 09:17:38

标签: jquery asp.net

在我的主页上,我有大约10个网格位于ajax标签等

当用户点击这个时,一个网格特别有一个名为“存档”的链接按钮我需要显示一个带有文本框的单独div,其中用户必须输入一个原因,说明为什么他们不会选择所选信息,但是我的问题是我怎样才能获得需要使用Jquery获得的行的名称和电子邮件,我希望将此信息存储在隐藏字段中,然后从代码后面引用隐藏字段等。

我尝试使用asp:ModalPopUp扩展程序但是当这个网格放在ajax标签内时,模态弹出扩展程序抱怨它可以看到控件链接按钮所以iv决定用户Jquery来获取这两个字段的名称并且有人可以帮我实现这个目标吗?

下面是按下链接按钮时需要获取姓名和电子邮件地址的一个网格

 <asp:HiddenField ID="hdnUserFullName" runat="server"/>
    <asp:HiddenField ID="hdnUserEmail" runat="server" />

     <div id="MainContent_TabControl_body" class="ajax__tab_body" style="height: 100%;
                    display: block;">
                    <div id="MainContent_TabControl_tb2" id="MainContent_TabControl_tb2" class="ajax__tab_panel">
                        <div>
                            <table cellspacing="0" class="tablesorter" id="MainContent_TabControl_tb2_GrdViewUsers"
                                style="border-collapse: collapse;">
                                <thead>
                                    <tr>
                                        <th scope="col">
                                            &nbsp;
                                        </th>
                                        <th scope="col">
                                            Full Name
                                        </th>
                                        <th scope="col">
                                            Email
                                        </th>
                                        <th scope="col">
                                            Exam Taken
                                        </th>
                                        <th scope="col">
                                            Date Taken
                                        </th>
                                        <th scope="col">
                                            Exam Total
                                        </th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <tr>
                                        <td>
                                            <a id="MainContent_TabControl_tb2_GrdViewUsers_Edit_0" href="javascript:__doPostBack(&#39;ctl00$MainContent$TabControl$tb2$GrdViewUsers$ctl02$Edit&#39;,&#39;&#39;)">
                                                Archieve</a>
                                        </td>
                                        <td>
                                            <a id="MainContent_TabControl_tb2_GrdViewUsers_HyperFullName_0" href="/Authentication/ExamPaper.aspx?uid=1">
                                                Scott Atkinson</a>
                                        </td>
                                        <td>
                                            <span id="MainContent_TabControl_tb2_GrdViewUsers_lblEmail_0">Scott.test@hotmail.co.uk</span>
                                        </td>
                                        <td>
                                            <span id="MainContent_TabControl_tb2_GrdViewUsers_lblExamTaken_0">True</span>
                                        </td>
                                        <td>
                                            <span id="MainContent_TabControl_tb2_GrdViewUsers_lblDateTaken_0">30-06-2012</span>
                                        </td>
                                        <td>
                                            <span id="MainContent_TabControl_tb2_GrdViewUsers_lblExamTotal_0">0</span>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                        </div>
                    </div>

<asp:HiddenField ID="hdnUserFullName" runat="server"/> <asp:HiddenField ID="hdnUserEmail" runat="server" /> <div id="MainContent_TabControl_body" class="ajax__tab_body" style="height: 100%; display: block;"> <div id="MainContent_TabControl_tb2" id="MainContent_TabControl_tb2" class="ajax__tab_panel"> <div> <table cellspacing="0" class="tablesorter" id="MainContent_TabControl_tb2_GrdViewUsers" style="border-collapse: collapse;"> <thead> <tr> <th scope="col"> &nbsp; </th> <th scope="col"> Full Name </th> <th scope="col"> Email </th> <th scope="col"> Exam Taken </th> <th scope="col"> Date Taken </th> <th scope="col"> Exam Total </th> </tr> </thead> <tbody> <tr> <td> <a id="MainContent_TabControl_tb2_GrdViewUsers_Edit_0" href="javascript:__doPostBack(&#39;ctl00$MainContent$TabControl$tb2$GrdViewUsers$ctl02$Edit&#39;,&#39;&#39;)"> Archieve</a> </td> <td> <a id="MainContent_TabControl_tb2_GrdViewUsers_HyperFullName_0" href="/Authentication/ExamPaper.aspx?uid=1"> Scott Atkinson</a> </td> <td> <span id="MainContent_TabControl_tb2_GrdViewUsers_lblEmail_0">Scott.test@hotmail.co.uk</span> </td> <td> <span id="MainContent_TabControl_tb2_GrdViewUsers_lblExamTaken_0">True</span> </td> <td> <span id="MainContent_TabControl_tb2_GrdViewUsers_lblDateTaken_0">30-06-2012</span> </td> <td> <span id="MainContent_TabControl_tb2_GrdViewUsers_lblExamTotal_0">0</span> </td> </tr> </tbody> </table> </div> </div>

这是我的Jquery到目前为止,我在那里发出警告,以确保它击中脚本,它是.....

$(document).ready(function () {

    $('#MainContent_TabControl_tb2_GrdViewUsers_Edit_0').click(function () {
        alert('hello');
        $('#dvArchive').show();
        $('#MainContent_hdnUserFullName').val() == 'Value of the grid view column';
        $('#MainContent_hdnUserEmail').val() == 'Email Value from the column';
    });

});

只需要一些帮助,引用全名列和电子邮件列,用需要存档的行的值填充隐藏字段.....

更新这是我的修订版Jquery

任何帮助将不胜感激....... $(document).ready(function () { $('#MainContent_TabControl_tb2_GrdViewUsers_Edit_0').click(function () { alert('hello'); $('#dvArchive').show(); $('#MainContent_hdnUserFullName').val() == 'Value of the grid view column'; $('#MainContent_hdnUserEmail').val() == 'Email Value from the column'; }); });

我给了链接按钮classname .ClickMe用于测试目的以及Full Name都有类.Username和Email作为类.Email

1 个答案:

答案 0 :(得分:1)

您需要的是一个名为closest()的jquery方法,它搜索从元素本身向上的DOM,以查找与给定条件匹配的父级。

在您的情况下,您需要找到点击链接所在的网格行(tr)。然后从该行中提取您的名字等。

你还有两个错误:

  1. 要为变量分配值,您需要使用=而不是==
  2. 要在jquery中为控件指定值,您需要说.val(value)而不是.val() == value
  3. 换句话说,

    $(document).ready(function () {
            $('.Archive-Button').click(function () {
                var tr = $(this).closest("tr");
                var UserName = tr.find('.UserName').text();
                var Email = tr.find('.Email').text();
    
                $('#MainContent_hdnUserFullName').val(UserName);
                $('#MainContent_hdnUserEmail').val(Email);
    
                return false;
            });
    
        });