【发布时间】:2013-10-03 18:02:25
【问题描述】:
我已经在这个 GridView 中添加了一个 TextBox 的验证,但是这个验证只对 GridView 的当前页面有效(它不适用于 GridView 的前一页和后一页)。
<asp:GridView ID="Grd1" runat ="server" Width ="100%" AllowPaging ="true" pagesize="5">
<Columns>
<asp:BoundField HeaderText="Name" DataField="NM" ItemStyle-Width="300px" HeaderStyle-Width="300px" HeaderStyle-Wrap="false" ItemStyle-Wrap="false" />
<asp:TemplateField HeaderText="Size (GB)">
<ItemTemplate>
<asp:TextBox ID="txtSize" runat="server" Width="100px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button ID="btnAdd" runat="server" Text="Save" OnClick="btnAdd_Click" />
<script language="javascript" type="text/javascript">
function IsValidateAdd() {
if (validateGridTextBox() == false)
{ return false; }
}
function validateGridTextBox() {
var flag = false;
var dropdowns = new Array(); //Create array to hold all the dropdown lists.
var gridview = document.getElementById('<%=Grd1.ClientID %>'); //grvDMODetails is the id of ur gridview.
dropdowns = gridview.getElementsByTagName('input'); //Get all dropdown lists contained in Grd1.
for (var i = 0; i < dropdowns.length; i++) {
if (dropdowns.item(i).value != "") //If dropdown has no selected value
{
flag = true;
}
else
{
flag = false;
break;
}
}
if (flag == false)
{
alert('Please enter Table Size.');
return flag;
}
</script>
后面的代码:
btnAddDM.Attributes.Add("onclick", "return IsValidateAdd();");
【问题讨论】:
-
你的验证控制标记在哪里
-
可能是客户端验证
-
所以当页面被回发时,因为这就是你所说的场景,你看到输出的 HTML 中呈现的“onclick”了吗?
-
在实际保存 gridview 数据之前,我想验证文本框应该在 gridview 的所有页面中都有值
-
您的“validateGridTextBox”函数缺少右括号。我不知道这是否给您带来任何麻烦,但这并不好=)
标签: c# javascript asp.net gridview paging