Как заставить JQuery Data валидатор работать с Asp.net gridview - PullRequest
0 голосов
/ 24 января 2012

Я пытался реализовать валидатор jquery, который предлагает здесь ответ: Плагин jQuery Validation в ASP.NET Web Forms

, но в этом и любом другом примере я 'мы обнаружили, что требуется, чтобы проверяемые элементы были в форме.Это может быть вопрос новичка, но у меня есть asp: текстовое поле (а не ввод) внутри asp: gridview, и я не могу заставить проверку работать.Есть ли способ вложить что-то из этого в форму или одна из этих функций asp генерирует форму автоматически в html?

Если это поможет, вот код jquery, который я использую, и мой gridview:

 <script type = "text/javascript">
 $(function() {     
 // You can specify some validation options here but not rules and messages
      $('form').validate();
      // Add a custom class to your name mangled input and add rules like this     
      $('textbox[id$=NPI]').rules('add', {
          required: true,
          messages: {
              required: 'Some custom message for the username required field'
          }
       });
       }); 
    </script>

 <div style="overflow:auto; height:300px;">
<asp:GridView ID="SetRules" runat="server" AutoGenerateColumns="False" DataSourceID="AttributesRules" OnDataBound="Anchor_Changed"
    class="styleGrid archGrid validation" AlternatingRowStyle-CssClass = "styleGridAlt" DataKeyNames="banner, pricinggroupkey, attribute, tieranchor, tierother">
    <Columns>                                               
    <asp:TemplateField HeaderText="New Price Index" SortExpression="NewPriceIndex">               
            <ItemTemplate>
                <asp:TextBox ID="NPI" class="NumVal" runat="server" 
                    Text='<%# Bind("NewPriceIndex", "{0:N2}") %>'></asp:TextBox>
            </ItemTemplate>  
        </asp:TemplateField>

    <asp:TemplateField HeaderText="New Index Range" SortExpression="NewIndexRange">               
            <ItemTemplate>
                <asp:TextBox ID="NIR" class="NumVal" runat="server" 
                    Text='<%# Bind("NewIndexRange", "{0:N2}") %>'></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>           
                </Columns>
</asp:GridView>
</div>

1 Ответ

0 голосов
/ 24 января 2012

По умолчанию ваш код ASP.NET будет отображаться внутри набора тегов FORM (требование asp.net), а ваши элементы TextBox будут отображаться в элементах «Input».Посмотрите HTML-код вашей страницы, чтобы увидеть, как выглядит вывод в браузере.Ваш селектор должен ссылаться на идентификатор автоматической генерации ASP.NET, используя следующий синтаксис ниже.

$('#<%= NIR.ClientID %>')

Не забудьте включить символ "#" перед кодом ASP.NET, поскольку вы используете идентификатор jQueryселектор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...