jQuery单击gridview行上的选择按钮

时间:2018-06-18 20:16:35

标签: c# jquery asp.net button gridview

我有一个带有自动生成选择按钮的简单gridview:

$('#gvChemDates tr').click(function () {
    $(this).closest('input[type=submit]').trigger('click');
})

我想要隐藏选择列,并允许我的用户通过单击该行的任意位置来选择它。使用jQuery,我尝试了几种变体:

void GLWidget::paintGL() {

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0,_w,0,_h,-1,1);
    glViewport(_camera_pos_x,0,_w,_h);

    glBegin(GL_LINES);
        glVertex2i(50,50);
        glVertex2i(200,200);
    glEnd();

   update();
}

但我没做什么似乎点击了自动生成的选择按钮。有人能告诉我这样做的正确语法吗?感谢。

2 个答案:

答案 0 :(得分:0)

$('#gvChemDates tr')不起作用(#gvChemDates不存在),因为ASP.NET在使用runat="server"时会生成随机ID

使用ClientIDMode="Static"确保客户端ID与服务器ID相匹配:

<asp:Gridview runat="server" ClientIDMode="Static" id="gvChemDates" CssClass="c_gvv" 
    onselectedindexchanged="getValues" AutoGenerateSelectButton="True" />

注意:当您使用runat="server"时,ASP.NET会为客户端ID生成随机ID。因此,我们使用ClientIDMode="Static"来使客户端ID与服务器ID相匹配。

答案 1 :(得分:-1)

使用GridView选择按钮

的Jquery功能
<asp:TemplateField>
     <ItemTemplate>
            <asp:Button ID="moreDetail" runat="server" CommandName="select" Text="More Detail" onclientclick="pageLoad()" />
     </ItemTemplate>
</asp:TemplateField>

JQuery功能

function pageLoad() {
    var gvid = '<%=GridDetail.ClientID %>';
    $('#' + gvid + ' input[type=button]').removeAttr('onclick');
    $('#' + gvid + ' input[type=button]').click(function () {

        //$('#' + gvid + ' tr').css('background-color', '#FFFFFF');
        var row = $(this).parent().parent();
        //row.css('background-color', '#669999');
        var cells = row.find('td'); // busca el valor de cada columna en el record releccionado.

        var premAmount = row.find('td').eq(7).html();
        var commAmount = row.find('td').eq(8).html();
        var account = row.find('td').eq(9).find(':input').val();
        var loan = row.find('td').eq(10).find(':input').val();
        var tranType = row.find('td').eq(11).find(':input').val();
        var semsys = row.find('td').eq(12).find(':input').val();
        var prodName = row.find('td').eq(13).find(':input').val();
        var contact = row.find('td').eq(15).find(':input').val();

        var commPercent = (parseFloat(commAmount.replace(/[$,]+/g, "")) / parseFloat(premAmount.replace(/[$,]+/g, ""))) * 100;

        $('#Span1').html(cells[0].innerHTML); // 1 
        $('#Span2').html(cells[1].innerHTML); // 2 certificate
        $('#Span3').html(tranType);
        $('#Span4').html(cells[2].innerHTML); // 4 insured
        $('#Span5').html(cells[4].innerHTML); // 5 eff date
        $('#Span6').html(cells[5].innerHTML); // 6 exp date
        $('#Span7').html(cells[6].innerHTML); // 7 cancel date
        $('#Span8').html(cells[3].innerHTML); // 8  type
        $('#Span9').html(loan);
        $('#Span10').html(account); // ******
        $('#Span11').html(premAmount);
        $('#Span12').html(commAmount);
        $('#Span13').html(prodName); // *****
        $('#Span14').html(semsys); // *******
        $('#Span15').html(commPercent); //****
        $('#Span16').html(contact); // ******

        $('div#Div_Details').slideToggle("slow"); //animation
        $('div#Div_Details').slideDown("slow");


    });   
};