【问题标题】:JavaScript Validation to TextBox in a GridView in ASP.NetASP.Net 中 GridView 中文本框的 JavaScript 验证
【发布时间】:2011-09-09 01:31:36
【问题描述】:

我有一个 GridView,其中的模板字段中有四个文本框。我在 GridView 下方有一个 Button。

如何验证 GridView 中的文本框,当单击按钮时?

【问题讨论】:

    标签: c# javascript asp.net validation user-controls


    【解决方案1】:

    使用RequiredFieldValidator 并设置ValidationGroup="gridview",查看以下示例

       <asp:TemplateField HeaderText="">
              <ItemTemplate>
                  <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
                   <asp:RequiredFieldValidator ID="rfv" runat="server" ControlToValidate="TextBox3" ValidationGroup="gridview" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
              </ItemTemplate>
                </asp:TemplateField>
              <asp:TemplateField HeaderText="">
                    <ItemTemplate>
                        <asp:Button ID="Button2" runat="server" Text="Button" ValidationGroup="gridview" CausesValidation="true" />
                    </ItemTemplate>
                </asp:TemplateField>
    

    【讨论】:

    • 嗨阿赫塔尔,它的工作。但是当我们使用Required Field Validator 时,GridView 中的文本框对齐效果并不好。如何解决?
    • 将 Display="Static" 设置为所需的 FieldValidator。
    • 您好 Akhtar,一切正常。但我有一个疑问。假设我们只需要验证三个文本框并且我们不想验证最后一个文本框。在这种情况下,我们如何完美地显示所有文本框对齐?
    【解决方案2】:

    您可以使用JQuery Validation Plugin

    <head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate  /lib/jquery.delegate.js"></script>
    <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js"></script>
    <script type="text/javascript">
    jQuery.validator.setDefaults({
    debug: true,
    success: "valid"
    });;
    </script>
    
    <script>
    $(document).ready(function(){
    $("#myform").validate({
    rules: {
    field: "required"
    }
    });
    });
    

     <body>
     <form id="myform">
      <label for="field">Required: </label>
      <input class="left" id="field" name="field" />
      <br/>
      <input type="submit" value="Validate!" />
     </form>
     </body>
    

    【讨论】:

    • 嗨 Peyram,我是 JQuery 新手。无论如何感谢你的宝贵贡献。我赞成你的回答。
    【解决方案3】:
    <script type="text/javascript">
        function ValidateGridview() {
            titlename = document.getElementById('<%=((TextBox)grd_party_influenc.FooterRow.FindControl("txt_f_title")).ClientID%>');
            if (titlename.value ==0) {
                alert("Please Insert The Title ....");
                titlename.focus();
                return false;
            }
           // return true;
        }
    
    </script>
    

    然后像这样通过链接按钮调用 JavaScript 函数:

    <asp:LinkButton ID="lnk_btn_insert" runat="server" CommandName="Insert" OnClientClick="ValidateGridview()">Insert</asp:LinkButton>
    

    【讨论】:

      【解决方案4】:

      我有 7 个文本框

      好的,我已经在我的 JS 函数上工作了,它对我有用。希望它会 为其他人工作。在我的代码中,我采用了一个变量

      success 作为一个标志工作,我正在检查它两次,然后 最后返回true,这样如果其中一个文本框不为空 而其他不是它不会返回true。 抱歉编辑不佳

       function fnCheck(val) {
              var success = true;
              var v = val.id.split('_')[1];
              var merter = document.getElementById('GridSubMeter_' + v + '_txtMeterIdn').value.trim();
              var Billper = document.getElementById('GridSubMeter_' + v + '_txBillPer').value.trim()
              var Endkwh = document.getElementById('GridSubMeter_' + v + '_txEndKwh').value.trim();
              var startkwh = document.getElementById('GridSubMeter_' + v + '_txStartKwh').value.trim();
              var ReadEndDate = document.getElementById('GridSubMeter_' + v + '_txReadEndDate').value.trim();
              var ReadStartDate = document.getElementById('GridSubMeter_' + v + '_txReadStartDate').value.trim();
              var CTFACT = document.getElementById('GridSubMeter_' + v + '_txCTFact').value.trim();
              debugger;
              if (merter != '') {
      
              }
              else {
                  alert("Meter Identifier is Required Field");
                  success = false;
          }
      
          if (Billper != '') {
      
          }
          else {
              alert("Bill Period is Required Field");
              success = false;
          }
      
          if (Endkwh != '') {
      
          }
          else {
              alert("EndKwh is Required Field");
              success = false;
          }
          if (startkwh != '') {
      
          }
          else {
              alert("StartKwh is Required Field");
              success = false;
          }
          if (ReadEndDate != '') {
      
          }
          else {
              alert("Read EndDate is Required Field");
              success = false;
          }
      
          if (ReadStartDate != '') {
      
          }
          else {
              alert("Read StartDate is Required Field");
              success = false;
          }
          if (CTFACT != '') {
      
          }
          else
          { alert("CT Factor is Required Field");
          success = false;
      }
      
      return success;
      
          }
      

      onclientclick

      <asp:Button ID="btn_Update" Style="background-color: #B2DE94; width: 40px"  CausesValidation="false" runat="server"  OnClientClick="return fnCheck(this);" Text="Update" CommandName="Update" />
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多