gridview有两列模板列。如下示意代码:
<templatefield>
<itemfield>
<input type="text" />
</itemfiled>
<templatefiled>
<templatefield>
<itemfield>
<input type="image" onclick="客户端方法"/>
</itemfiled>
<templatefiled>现在当我点击第二个模板列type="image"的时候,如何获取当前点击这行的type="text"的值。
<templatefield>
<itemfield>
<input type="text" />
</itemfiled>
<templatefiled>
<templatefield>
<itemfield>
<input type="image" onclick="客户端方法"/>
</itemfiled>
<templatefiled>现在当我点击第二个模板列type="image"的时候,如何获取当前点击这行的type="text"的值。
解决方案 »
- 如何把response.write输出的页面直接存储成.htm文件
- 网页制作如何给图片添加onclick事件 不用imagebutton
- 考试系统定时刷新数据库的问题
- 急急急!兼容性问题
- CSDN里究竟有没有高手?高手请进,分不够再加200分
- 本机可以上传200K大小的图片 升级到服务器确出现问题
- 找不到类型或命名空间名称“fileUpload”(是否缺少 using 指令或程序集引用?)
- 我很想学ASP。NET,能不能提供给在下一些作为学习用的源代码?
- 表格转换
- VS2008安装完成后,没有可新建的项目
- ado带条件查询EXCEL数据问题
- windowservice 在window7中安装问题
prevAll()同辈元素 。
不知道对不对 。
$(this).parent() 取得 <tr>
如果这一行里有多个text的话你只能加个id或其它属性了
<head runat="server">
<title>无标题页</title>
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function getText(obj){
alert($(obj).parent().prev().find(":text").val());
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<input id="Text1" type="text" value='<%#Eval("Name") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<img onclick="getText(this)" src="images/blog_bnt.gif" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</body>
</html>
//获取点击对象的父元素(td)的上一个同级元素(td),然后查找他的type="text"的值
function getText(obj){
alert($(obj).parent().prev().find(":text").val());
}
$(obj).parent().parent().eq(第几个).find(":text").val()
除了绑定列,就这两个模板列<asp:TemplateField ItemStyle-CssClass="Sequence FixedCloumn" ItemStyle-Width="8%"
HeaderText="序号" InsertVisible="False">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# this.sgv.PageIndex * this.sgv.PageSize + this.sgv.Rows.Count + 1 %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField ItemStyle-Width="15%" DataField="WorkSheetName" HeaderText="工作表">
</asp:BoundField>
<asp:TemplateField HeaderText="开始行号">
<ItemTemplate>
<input type="text" value='<%#Eval("StartRow") %>' id="startRow" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="15%" HeaderText="结束行号">
<ItemTemplate>
<input type="text" value='<%#Eval("EndRow") %>' id="endRow" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="8%" HeaderText="开始导入">
<ItemTemplate>
<input type="image" src="../Images/import.gif" onclick="" />
</ItemTemplate>
</asp:TemplateField>
var test = function(obj){
var texts = $(obj).parent().parent().find("input[type='text']");
alert("开始行号:"+texts.eq(0).val()+" 结束行号:"+texts.eq(1).val());
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function getText(obj){
// var start = $(obj).parent().parent().find("td").eq(0).find(":text").val();
// var end = $(obj).parent().parent().find("td").eq(1).find(":text").val();
// alert(start+"=="+end);
//或这种,两种都可以,我都有测试过
$(obj).parent().parent().find(":text").each(function(){
alert($(this).val())
})
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<input id="Text1" type="text" value='<%#Eval("Name") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<input id="Text1" type="text" value='<%#Eval("Name") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<img src="images/blog_bnt.gif" onclick="getText(this)" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</body>
</html>
这年头不懂jquery 还真是亏
//$(obj).parent().parent()查找到的是tr,然后查找td,find("td"),这里的eq索引是从0开始算,也就///是获取第0个td,你这里参数要改下,因为我测试只有三列!
var start = $(obj).parent().parent().find("td").eq(0).find(":text").val();