使用jquery在gridview中启用按钮

时间:2016-11-24 13:26:35

标签: c# jquery asp.net gridview

我有一个gridview,在页脚中它将总值放在grandTotalPCT中。如果grandTotalPCT不等于100,我希望按钮btnUpdatePCTD保持禁用状态,如果它等于100,则启用该按钮。

以下代码是从另一个函数调用的,该函数在grandTotalPCT值更改时起作用。问题是按钮状态不会改变。

<asp:TemplateField HeaderText="Line" ItemStyle-Width="50%">
    <ItemTemplate>
        <asp:Label ID="lblLineD" runat="server" Text='<%# Bind("line") %>'></asp:Label>
    </ItemTemplate>
    <FooterTemplate>
        <asp:Button ID="btnUpdatePCTD" runat="server" Text="Update" CssClass="btn btn-default btn-sm" OnClick="updateDockPCT"  Enabled="False" />
    </FooterTemplate>
    <FooterStyle HorizontalAlign="Center" />
</asp:TemplateField>

<asp:TemplateField HeaderText="% Target" ItemStyle-Width="25%">
    <ItemTemplate>
        <asp:TextBox ID="tbPTC" runat="server" Text='<%# Convert.ToDouble(Eval("dailypercent")) * 100 %>' CssClass="tbPTC"></asp:TextBox>
    </ItemTemplate>
    <FooterTemplate>
        <asp:Label ID="grandTotalPCT" runat="server" CssClass="grandTotalPCT"></asp:Label>
    </FooterTemplate>
</asp:TemplateField>

//To get grand Total PCT
function CalculateGrandTotalPCT() {
    var grandTotalPCT = 0.0;
    $('#<%=gvDockPCT.ClientID %> tr:gt(0)').each(function () {
        grandTotalPCT = grandTotalPCT + parseFloat($(this).find('.tbPTC').length == 0 || !$(this).find('.tbPTC').val() ? 0 : $(this).find('.tbPTC').val());

    });
    $('#<%=gvDockPCT.ClientID %> .grandTotalPCT').text(grandTotalPCT.toFixed(3));
    if (grandTotalPCT.toFixed(3) == 100.000)
    {
        $('#<%=gvDockPCT.ClientID %> .btnUpdatePCTD').prop('disabled', false);
    }
    else
    {
        $('#<%=gvDockPCT.ClientID %> .btnUpdatePCTD').prop('disabled', true);
    }
}

2 个答案:

答案 0 :(得分:0)

我建议使用select list item事件,而不是jQuery。

OnRowDataBound

答案 1 :(得分:0)

我必须将按钮名称添加到cssclass CssClass =&#34; btnUpdatePCTD btn btn-default btn-sm&#34;

<asp:Button ID="btnUpdatePCTD" runat="server" Text="Update" CssClass="btnUpdatePCTD btn btn-default btn-sm" OnClick="updateDockPCT"  Enabled="False" />