I am trying to get access the elements inside gridview by validating this requirement: if checkbox is checked then 1) Role must be selected from the dropdown 2) And the Title textbook must be filled. I am getting this error now:
Error: Sys.WebForms.PageRequestManagerServerErrorException: Object reference not set to an instance of an object.
JS
<script type="text/javascript">
function validate() {
var flag = true;
var gridView = document.getElementById('<%= gvTest.ClientID %>');
for (var i = 1; i < gridView.rows.length; i++) {
var inputs = gridView.rows[i].getElementsByTagName('input');
var dropdowns = gridView.rows[i].getElementsByTagName('Select');
var areas = gridView.rows[i].getElementsByTagName('text');
if (inputs != null && inputs.length >= 1 && inputs[0] != null && areas != null && areas.length > 1 && areas[0] != null && dropdowns != null && dropdowns.length >= 1 && dropdowns[0] != null) {
if (dropdowns[0].type == "select-one" && inputs[0].type == "checkbox" && areas[0].type == "text") {
var ddlSelectedItem = dropdowns[0].value;
var txtval = areas[0].value;
if (inputs[0].checked && ddlSelectedItem == "Select" && (txtval == "" || txtval == null)) {
flag = false;
break;
}
else {
flag = true;
}
}
}
}
if (!flag) {
dropdowns[0].focus();
alert('Please note that if checkbox is checked then a Role and Title must be selected. Thanks');
}
return flag;
}
</script>
aspx
<asp:GridView ID="gvTest" runat="server"
PageSize="100">
<Columns>
<asp:BoundField DataField="Task" HeaderText="Title" HtmlEncode="true" />
<asp:TemplateField HeaderText="Role">
<ItemTemplate>
<asp:DropDownList ID="ddlRole" runat="server">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Task">
<ItemTemplate>
<asp:TextBox ID="txtTsk" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Check">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:LinkButton ID="ButtonAssign" runat="server" Font-Size="Small" OnClick="btnAssign_Click" CausesValidation="true" OnClientClick="return validate();" >
<i aria-hidden="true" class="glyphicon glyphicon-ok"></i>Assign Role
</asp:LinkButton>
thanks