通过使用jQuery或Javascript循环GridView

问题描述:

我正在开发一个表格,我有一个GridView。在GridView的每一行中,我有一个DropDownList与值存在&缺席和一些文本框和一个提交按钮。 如果我选择“呈现”,则所有文本框都会启用并输入值。 如果我选择“缺席”,则所有文本框都将被禁用。通过使用jQuery或Javascript循环GridView

关于提交按钮我想编写一个JQuery或Javascript代码来检查用户是否选择了Present并且不输入标记并且想显示警报。

我试过下面的JQuery代码,但我不明白我在做什么错误的代码。

$("#<%=grdOJTResult.ClientID%> tr").each(function() { 

       var Value = $(this).closest("tr").find("select[id*=ddlStatus]").val(); 

       if (Value == 0) { 
        if ($(this).closest("tr").find("input[id*=txtAttendance]").val() == "") { 
         alert("Please Enter Attendance."); 
         $(this).closest("tr").find("input[id*=txtAttendance]").focus(); 
         return false; 
        } 
        else if ($(this).closest("tr").find("input[id*=txtWritten]").val() == "") { 
         alert("Please Enter Written Marks."); 
         $(this).closest("tr").find("input[id*=txtWritten]").focus(); 
         return false; 
        } 
        else if ($(this).closest("tr").find("input[id*=txtTurnOut]").val() == "") { 
         alert("Please Enter TurnOut Marks."); 
         $(this).closest("tr").find("input[id*=txtTurnOut]").focus(); 
         return false; 
        } 
        else if ($(this).closest("tr").find("input[id*=txtSmartness]").val() == "") { 
         alert("Please Enter Smartness Marks."); 
         $(this).closest("tr").find("input[id*=txtSmartness]").focus(); 
         return false; 
        } 
        else if ($(this).closest("tr").find("input[id*=txtKnowledge]").val() == "") { 
         alert("Please Enter Knowledge Marks."); 
         $(this).closest("tr").find("input[id*=txtKnowledge]").focus(); 
         return false; 
        } 
        else if ($(this).closest("tr").find("input[id*=txtLanguage]").val() == "") { 
         alert("Please Enter Language Marks."); 
         $(this).closest("tr").find("input[id*=txtLanguage]").focus(); 
         return false; 
        } 
        else if ($(this).closest("tr").find("input[id*=txtAttitude]").val() == "") { 
         alert("Please Enter Attitude Marks."); 
         $(this).closest("tr").find("input[id*=txtAttitude]").focus(); 
         return false; 
        } 
       } 
      }); 

下面是我的GridView。

<asp:GridView ID="grdOJTResult" runat="server" AutoGenerateColumns="false" Width="98%" 
        CssClass="mGrid" DataKeyNames="EmpId,BatchId" HorizontalAlign="Center"> 
        <Columns> 
         <asp:BoundField DataField="EmpCode" HeaderText="Employee Code" ItemStyle-HorizontalAlign="Center"> 
          <ItemStyle HorizontalAlign="Center" /> 
         </asp:BoundField> 
         <asp:BoundField DataField="EmpFullName" HeaderText="Employee Name" ItemStyle-HorizontalAlign="Center"> 
          <ItemStyle HorizontalAlign="Center" /> 
         </asp:BoundField> 
         <asp:TemplateField HeaderText="ATTENDANCE (16)" ItemStyle-HorizontalAlign="Center"> 
          <ItemTemplate> 
           <asp:TextBox ID="txtAttendance" Width="50px" MaxLength="4" runat="server" ></asp:TextBox> 
           <Cc1:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" runat="server" Enabled="True" 
            FilterType="Custom,Numbers" TargetControlID="txtAttendance" ValidChars="."> 
           </Cc1:FilteredTextBoxExtender> 
          </ItemTemplate> 
          <ItemStyle HorizontalAlign="Center" /> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="WRITTEN MARKS (34)" ItemStyle-HorizontalAlign="Center"> 
          <ItemTemplate> 
           <asp:TextBox ID="txtWritten" Width="50px" MaxLength="3" runat="server" ></asp:TextBox> 
           <Cc1:FilteredTextBoxExtender ID="FilteredTextBoxExtender2" runat="server" Enabled="True" 
            FilterType="Custom,Numbers" TargetControlID="txtWritten" ValidChars="."> 
           </Cc1:FilteredTextBoxExtender> 
          </ItemTemplate> 
          <ItemStyle HorizontalAlign="Center" /> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="TURN OUT (10)" ItemStyle-HorizontalAlign="Center"> 
          <ItemTemplate> 
           <asp:TextBox ID="txtTurnOut" Width="50px" MaxLength="3" runat="server" ></asp:TextBox> 
           <Cc1:FilteredTextBoxExtender ID="FilteredTextBoxExtender3" runat="server" Enabled="True" 
            FilterType="Custom,Numbers" TargetControlID="txtTurnOut" ValidChars="."> 
           </Cc1:FilteredTextBoxExtender> 
          </ItemTemplate> 
          <ItemStyle HorizontalAlign="Center" /> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="SMARTNESS (10)" ItemStyle-HorizontalAlign="Center"> 
          <ItemTemplate> 
           <asp:TextBox ID="txtSmartness" Width="50px" MaxLength="3" runat="server" ></asp:TextBox> 
           <Cc1:FilteredTextBoxExtender ID="FilteredTextBoxExtender4" runat="server" Enabled="True" 
            FilterType="Custom,Numbers" TargetControlID="txtSmartness" ValidChars="."> 
           </Cc1:FilteredTextBoxExtender> 
          </ItemTemplate> 
          <ItemStyle HorizontalAlign="Center" /> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="KNOWLEDGE (10)" ItemStyle-HorizontalAlign="Center"> 
          <ItemTemplate> 
           <asp:TextBox ID="txtKnowledge" Width="50px" MaxLength="3" runat="server" ></asp:TextBox> 
           <Cc1:FilteredTextBoxExtender ID="FilteredTextBoxExtender5" runat="server" Enabled="True" 
            FilterType="Custom,Numbers" TargetControlID="txtKnowledge" ValidChars="."> 
           </Cc1:FilteredTextBoxExtender> 
          </ItemTemplate> 
          <ItemStyle HorizontalAlign="Center" /> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="LANGUAGE (10)" ItemStyle-HorizontalAlign="Center"> 
          <ItemTemplate> 
           <asp:TextBox ID="txtLanguage" Width="50px" MaxLength="3" runat="server" ></asp:TextBox> 
           <Cc1:FilteredTextBoxExtender ID="FilteredTextBoxExtender6" runat="server" Enabled="True" 
            FilterType="Custom,Numbers" TargetControlID="txtLanguage" ValidChars="."> 
           </Cc1:FilteredTextBoxExtender> 
          </ItemTemplate> 
          <ItemStyle HorizontalAlign="Center" /> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="ATTITUDE (10)" ItemStyle-HorizontalAlign="Center"> 
          <ItemTemplate> 
           <asp:TextBox ID="txtAttitude" Width="50px" MaxLength="3" runat="server" ></asp:TextBox> 
           <Cc1:FilteredTextBoxExtender ID="FilteredTextBoxExtender7" runat="server" Enabled="True" 
            FilterType="Custom,Numbers" TargetControlID="txtAttitude" ValidChars="."> 
           </Cc1:FilteredTextBoxExtender> 
          </ItemTemplate> 
          <ItemStyle HorizontalAlign="Center" /> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="TOTAL MARKS (100)" ItemStyle-HorizontalAlign="Center"> 
          <ItemTemplate> 
           <asp:TextBox ID="txtTotal" Width="50px" MaxLength="3" runat="server" ReadOnly="true"></asp:TextBox> 
          </ItemTemplate> 
          <ItemStyle HorizontalAlign="Center" /> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="STATUS" ItemStyle-HorizontalAlign="Center"> 
          <ItemTemplate> 
           <asp:DropDownList ID="ddlStatus" Width="50px" runat="server" CssClass="ddlRes"> 
            <asp:ListItem Text="Present" Value="0"></asp:ListItem> 
            <asp:ListItem Text="Absent" Value="1"></asp:ListItem> 
            </asp:DropDownList> 
          </ItemTemplate> 
         </asp:TemplateField> 
        </Columns> 
       </asp:GridView> 
+0

应该是$(本).closest( “TD”)找到(“选择[ID $ = “ddlStatus”]')VAL(); – RGS 2014-09-06 12:10:02

+0

嗨RGS.It不工作。 – 2014-09-06 12:16:46

+0

你可以请你发布你的设计代码吗? – RGS 2014-09-06 12:19:16

尝试:

$("#<%=grdOJTResult.ClientID%> tr").each(function() { 
    var Value = $(this).find('select[id$="ddlStatus"]').val(); 
}); 

演示:

http://jsfiddle.net/v9cqwrfm/2/

+0

它并没有停留在那个JQuery代码中。第一次警告后,它直接跳转到.Cs代码。 – 2014-09-06 12:59:34