Установите для скрытого поля какое-то значение, когда флажки установлены GridView с использованием jquery в приложении веб-форм ASP.NET

javascript jquery asp.net jquery-ui webforms

735 просмотра

2 ответа

321 Репутация автора

Из страницы ASP.NET приложения веб-форм ASP.NET с использованием .NET Framework 2.0 с использованием Jquery версии 1.8.2 с использованием элемента управления ASP.NET GridView.

Мне нужно иметь возможность установить для скрытого поля : hidIsDirty значение «true», когда я нажимаю на один из 3-х флажков «Авто-проверка», «Авто-EFT» или «Вручную». Пожалуйста, скажите мне, как я могу добиться этого с помощью JQuery, так как я написал следующий код ниже в jquery, который не устанавливает значение скрытого поля. Я буду получать доступ к скрытому полю в коде позади (aspx.cs).

Можете ли вы помочь реорганизовать мой код jquery и помочь мне выполнить требование для 3 флажков?

Код приведен ниже:

  <script>
      $("[id*=rdoSAPPaymentAuto]").live("click", function () {
             var parentRow = $(this).parent('tr');
                        var hiddenField=parentRow.find('input[id$=hidIsDirty]');
                        alert(hiddenField.val("true"));
        });

           $("#<%=gvPaymentList.ClientID %> input[id*='rdoSAPPaymentAuto']").click(function () {
                        var parentRow = $(this).parent('tr');
                        var hiddenField=parentRow.find('input[id$=hidIsDirty]');
                        alert(hiddenField.val("true"));
        });

         $("#<%=gvPaymentList.ClientID %> input[id*='rdoSAPPaymentAutoEFT']").click(function () {
                        var parentRow = $(this).parent('tr');
                        var hiddenField=parentRow.find('input[id$=hidIsDirty]');
                        alert(hiddenField.val("true"));
        });

        $("#<%=gvPaymentList.ClientID %> input[id*='rdoSAPPaymentManual']").click(function () {
                        var parentRow = $(this).parent('tr');
                        var hiddenField=parentRow.find('input[id$=hidIsDirty]');
                       alert(hiddenField.val("true"));
        });

    </script>

    WebForm.aspx page:

    <asp:GridView ID="gvPaymentList" runat="server" CellPadding="0" EmptyDataText="No payments found."
                        CssClass="green greenBorder setpadding" AutoGenerateColumns="false" OnRowDataBound="gvPaymentList_RowDataBound"
                        AllowSorting="true" AlternatingRowStyle-CssClass="altRowColor" RowStyle-CssClass="RowColor"
                        OnSorting="gvPaymentList_Sorting" ShowFooter="false">
                        <Columns>
     <asp:TemplateField>
                                <HeaderTemplate>
                                    Approve for SAP Auto Payment or Manual Pay Req
                                    <input id="btnAutoPayment" value="Set All to Auto Payment" type="button" />
                                </HeaderTemplate>                          
                                <ItemTemplate>
                                    <asp:CustomValidator ID="cvAutoPayCheck3" runat="server" OnServerValidate="cvAutoPayCheck_ServerValidate">*</asp:CustomValidator>
                                  <asp:RadioButton ID="rdoSAPPaymentAuto" GroupName="SAPPaymentOption" runat="server"
                                        AutoPostBack="true" OnCheckedChanged="rdoSAPPaymentAuto_CheckedChanged" Text="Auto-Cheque" />
                                    <asp:RadioButton ID="rdoSAPPaymentAutoEFT" GroupName="SAPPaymentOption" OnCheckedChanged="rdoSAPPaymentAutoEFT_CheckedChanged" runat="server"
                                        AutoPostBack="true" Text="Auto-EFT" />
                                    <asp:RadioButton ID="rdoSAPPaymentManual" GroupName="SAPPaymentOption" runat="server" 
                                        AutoPostBack="true" OnCheckedChanged="rdoSAPPaymentManual_CheckedChanged" Text="Manual" />                              
                                    <asp:RadioButton ID="rdoSAPPaymentPending" GroupName="SAPPaymentOption" runat="server"
                                        Text="Pending" />
                                    <asp:HiddenField ID="hidSAPPayment" runat="server" />
                                    <asp:HiddenField ID="hidIsDirty" runat="server" />
                                </ItemTemplate>
                                <ItemStyle Width="310px" />
                            </asp:TemplateField> 
     </Columns>
                    </asp:GridView>        
Автор: Ruruboy Источник Размещён: 19.07.2016 12:44

Ответы (2)


1 плюс

2248 Репутация автора

Решение

Вот рабочее решение Поместите CssClass для ваших радиокнопок:

<asp:RadioButton ID="rdoSAPPaymentAuto" GroupName="SAPPaymentOption" runat="server"
                                    Text="Auto-Cheque" CssClass="rdo" />
                                <asp:RadioButton ID="rdoSAPPaymentAutoEFT" GroupName="SAPPaymentOption"  runat="server"
                                    Text="Auto-EFT" CssClass="rdo" />
                                <asp:RadioButton ID="rdoSAPPaymentManual" GroupName="SAPPaymentOption" runat="server" 
                                      Text="Manual" CssClass="rdo" /> 

Ниже небольшой Jscript сделает свое дело

$('.rdo').click(function () {                                      
                var parentRow = $(this).closest('tr');
                alert($(parentRow).html());                    
                var hiddenField = $(parentRow).find('input[type="hidden"]:first');                                       
                alert($(hiddenField).val('true'));
            })

Примечание: Пожалуйста, измените порядок скрытого поля (так как я получаю первое скрытое поле) ... немного лениво, но вы можете найти скрытые поля по Id как ...

 <asp:HiddenField ID="hidIsDirty" runat="server" />
 <asp:HiddenField ID="hidSAPPayment" runat="server" />

Надеюсь это поможет!

Автор: Sami Размещён: 19.07.2016 01:28

0 плюса

321 Репутация автора

Я использовал любую идею, полученную от Сами выше (единственный человек, который ответил спасибо!) Выше, чтобы получить ближайший ряд. По какой-то причине у меня сработало событие .live (но событие .click отказалось работать странно), код приведен ниже:

$("#<%=GRIDVIEW.ClientID %> input[id$='checkboxid']").live('click', function() {
                var parentRow = $(this).closest('tr');                                   
                var hiddenField = $(parentRow).find("input[id$='hidIsDirty']");                                      
                $(hiddenField).val('true');              

              });
Автор: Ruruboy Размещён: 06.08.2016 03:43
Вопросы из категории :
32x32