我有一个包含图像按钮的gridview。单击该图像按钮,另一个网格将被填充,其中包含一些文本框。如果在文本框中插入的值大于gridview的列值之一,我想为丢失焦点上的那些文本框激活JQuery验证。该列值使用绑定字段来绑定数据。
如何使用Jquery实现这一目标?我是JQuery的新手。
我尝试过这样的事情。
<script type="text/javascript" language="javascript">
$(function () {
var GridView = $('#grdSalesOrder tr').each(function () {
var btn = $(this).find('img[id*=imgdesign1]');
alert(btn);
});
});
</script>
首先,我找到该网格视图的主要gridview和imagebutton。单击按钮时,将填充另一个gridview。所以我认为我应该编写代码来查找此图像按钮的单击事件上的另一个网格,因为在页面加载事件时,另一个网格将不可用。但在这段代码中,我没有得到主网格视图中的按钮。如果我犯了任何错误,请编辑我的Jquery。
答案 0 :(得分:1)
您可以配置一些JQuery来满足您的需求。
它假设您已将CssClass添加到网格视图中,如下所示:
<asp:GridView ID="Products" runat="server" CssClass="grid_view">
CssClass到你的文本框如下:
<asp:TextBox ID="txtUserInput runat="server" CssClass="user_input" />
并且绑定的列值位于标题行中。
因此,如果您的网格视图中的html表输出与此
类似<table class="grid_view" cellspacing="0" rules="all" border="1" id="Products" style="border-collapse:collapse;">
<tr>
<th scope="col">12</th><th scope="col">4</th><th scope="col">21</th>
</tr>
<tr>
<td>3</td><td>1</td><td>5</td>
</tr>
<tr>
<td>3</td><td>1</td><td>5</td>
</tr>
<tr>
<td>3</td><td>1</td><td>6</td>
</tr>
<tr>
<td>3</td><td>1</td><td>5</td>
</tr>
<tr>
<td><input type="text" class="user_input" /></td>
<td><input type="text" class="user_input" /></td>
<td><input type="text" class="user_input" /></td>
<tr>
</table>
您可以使用此JQuery
<script type="text/javascript">
$('.user_input').blur(function() {
var enteredVal = $(this).val();
var currentCell = $(this).closest("td");
col = $(currentCell).prevAll().length;
var obj = $(this).parents('table').find('th').eq(col);
var hrVal = obj.text();
// your validation here
if (parseInt(enteredVal,10) > parseInt(hrVal,10)) {
alert('too big');
}
});
</script>
有关工作示例,请参阅此fiddle。
答案 1 :(得分:0)
这里的技巧是如何在网格上找到您想要的每个元素。有了html代码,我可以给你点开始。
此代码在您的GridView中选择所有文本框,ID为YourGridViewID
jQuery('#<%=YourGridViewID.ClientID%> input[type=text]')
要添加丢失的焦点,请设置
jQuery('#<%=YourGridViewID.ClientID%> input[type=text]').blur{
// add the code for the validation
});
现在,如果您从网格中写出两行,我可以帮助您更多地找到其他数据。