2015-12-18 2 views
2

я есть GridView в моей странице ASPX, какКак проверить текстовое поле в GridView, когда флажок в одной строке GridView Использование JavaScript asp.net

<asp:GridView ID="Grid_FeeCategory" Width="100%" CssClass="table table-striped responsive-utilities jambo_table" runat="server" AutoGenerateColumns="False"> 
    <HeaderStyle CssClass="headings" /> 
    <Columns> 
    <asp:TemplateField> 
    <HeaderTemplate> 
    <asp:CheckBox ID="checkAll" runat="server" onclick = "checkAll(this);" /> 
    </HeaderTemplate> 
    <ItemTemplate> 
    <asp:CheckBox ID="chkRow" runat="server" onclick = "Check_Click(this)"/> 
    </ItemTemplate> 
    </asp:TemplateField> 
    <asp:BoundField DataField="CatName" HeaderText="Category" /> 
    <asp:TemplateField HeaderText="Category Fee" HeaderStyle-Width="125px"> 
    <ItemTemplate> 
    <asp:TextBox ID="txtCatFee" runat="server" placeholder="Int or Decimal" style="width:100%" /> 
    </ItemTemplate> 
    </asp:TemplateField> 
    <asp:BoundField DataField="FeeCatID" HeaderText="Category ID" HeaderStyle-CssClass="hidden-field" ItemStyle-CssClass="hidden-field"/> 
    </Columns> 

    </asp:GridView> 

и мой custom validator выглядит

<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Please enter value" 
    ClientValidationFunction="Validate" ForeColor="Red"></asp:CustomValidator> 

Мне нужно, чтобы проверить textbox в gridview когда checkbox в gridview проверяется и пользователь оставить textbox пустой

например, если пользователь установил флажок в строке 1 сетки, а также оставил текстовое поле пустым в строке 1 и т. Д. Затем пользовательский валидатор сообщит ввести значение,

для этого я вчера получил javascript из Google и манипулировал им, но он ничего не делает, а вот javascript

<script type="text/javascript"> 
     function Validate(sender, args) { 
      var gridView = document.getElementById("<%=Grid_FeeCategory.ClientID %>"); 

      var fields= gridView.getElementsByTagName("input"); 

      for (var i = 0; i < fields.length; i++) 
      { 

       if (fields[i].type == "fields" && fields[i].checked) 
       { 

        if (fields[i].type == "text" && fields[i].value.length < 1) 
        { 

         args.IsValid = false; 
          return; 

         } 

       } 
      } 
      args.IsValid = true; 
     } 
     </script> 

я проверить его с помощью предупреждений внутри сценария, и он не может войти в этот раздел javascript

if (fields[i].type == "text" && fields[i].value.length < 1) 
        { 

         args.IsValid = false; 
         return; 

         } 

это требование, чтобы сделать это на стороне клиента, используя javascript так мне нужна ваша помощь, чтобы выйти из него

+0

Если вы хотите просто проверить, если пользователь вошел все, что вы используете _CustomValidator, почему бы не _RequiredFieldValidator_? –

+0

У меня есть опция для проверки пользователем 1, 2 или ничего из gridview ... так что если он проверяет, то его обязательный для него ввод записи в текстовое поле также – Waqas

+0

Хорошо, но если вы хотите действительно проверить, что пользователь ввел что-либо в текстовое поле или нет, у вас есть кнопки управления или что-то еще? –

ответ

2

я знаю, что это поздно, но любой может получить помощь от следующей функции ....

У меня есть пример, связанный с вашей логикой. вы можете сделать это на стороне клиента ... следующий код - это не совсем ваше требование, но вы можете манипулировать им в соответствии с вашим требованием.

<script type="text/javascript"> 
function validate() { 
      var flag = false; 
      var gridView = document.getElementById('<%= Grid_FeeCategory.ClientID %>'); 

    for (var i = 1; i < gridView.rows.length; i++) { 
     var inputs = gridView.rows[i].getElementsByTagName('input'); 

     if (inputs != null && inputs.length > 1 && inputs[0] != null) { 
      if (inputs[1].type == "text" && inputs[0].type == "checkbox") { 
       var txtval = inputs[1].value; 
       if (inputs[0].checked && (txtval == "" || txtval == null)) { 

        flag = false; 
        break; 
       } 
       else { 
        flag = true 
       } 
      } 
     } 
    } 
    if (!flag) { 

      new PNotify({ 
       title: 'Error', 
       text: 'Please provide values for "CHECKED" fee categories....!', 
       type: 'error', 
       hide: true 
      }); 


    } 

    return flag; 
} 
</script> 

и кнопка, где вы можете вызвать выше функции

<asp:Button ID="btnCalculate" runat="server"OnClientClick="if(!validate()) { return false;}" OnClick="btnCalculate_Click" Text="Calculate" ValidationGroup="Update"/> 

если вам нужен какой-либо запрос, чтобы понять то, пожалуйста, не стесняйтесь спросить

Смежные вопросы