简单问题,纠结了,求指导....
http://q.cnblogs.com/q/38952/
[解决办法]
我想问的是哪里出现问题(也就是你所说的用了几种方法都不行的地方)?
[解决办法]
利用JS+AJAX
因为Table结果是固定的,你可以通过当前文本框,根据索引找到当前行的其他文本框,然后赋值
[解决办法]
你动态生成的text没有ID标识吗? 有得话 js直接赋值不可以?
[解决办法]
<head runat="server"> <title></title> <script src="scripts_test/jquery1.7.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function () { $("#gridview tr:gt(0) td:nth-child(1) input:text").blur(function () { //ajax取数据 var json = { "no1": "11", "no2": "22" }; $(this).parent().nextAll("td:eq(5)").find("input:text").val(json.no1); $(this).parent().nextAll("td:eq(6)").find("input:text").val(json.no2); }) }) </script></head><body> <form id="form1" runat="server"> <div> <table border="1" cellpadding="5" cellspacing="0" id="gridview"> <tr> <td>服务/销售单号 </td> <td>产品编号</td> <td>名称</td> <td>品牌</td> <td>单位</td> <td>数量</td> <td>用户单位</td> <td>序列号</td> </tr> <tr> <td> <input type="text" name="name" value="" /> </td> <td>...</td> <td>...</td> <td>...</td> <td>...</td> <td>...</td> <td> <input type="text" name="name" value="" /> </td> <td> <input type="text" name="name" value="" /> </td> </tr> <tr> <td> <input type="text" name="name" value="" /> </td> <td>...</td> <td>...</td> <td>...</td> <td>...</td> <td>...</td> <td> <input type="text" name="name" value="" /> </td> <td> <input type="text" name="name" value="" /> </td> </tr> </table> </div> <div> </div> </form></body>
[解决办法]
用ajax,具体思路:gridview绑定数据的事件中,编写textbox的失去焦点事件绑定js的方法,在此方法中调用ajax方法,同时将需要设置值的控件id传给此方法,此方法还包含传入的id参数,ajax根据此参数得到序列号等信息返回后,在js方法中设置: 传入设置值的控件id的文本值
大致代码如下: gridview_onrowdatabound事件中: e.row.findcontrol("单号控件id").attributes.add("onblur", "js事件名('" + 单号控件id.value + "', '" + 用户单位控件id + "', '" + 序列号控件id + "');");
aspx 页面:添加js方法:<script> js事件名(单号控件id的值, 用户单位控件id, 序列号控件id )
{
ajax的方法调用的页面传参数值=单号控件id的值,例如: url = "a.aspx?x=" + 单号控件id的值;
ajax方法调用;
var x = ajax返回值;
var 处理的值1 = x进行处理的值;
document.getElementById(用户单位控件id).value = 处理的值1;
document.getElementById(单号控件id).value = 处理的值1;
}
以上代码中需注意:单号控件id 需加上 runat="server" 其余两个也要加上
以上是提供一个大概的思路,希望对楼主有所帮助哦
[解决办法]
在你的GridView的TextBox控件中写好onblur事件嘛,如:
<asp:GridView ID="GridViewTest" runat="server">
<Columns>
<asp:TemplateField HeaderText="服务/销售单号">
<ItemTemplate>
<asp:TextBox ID="TestBox" runat="server" onblur="TestPutInValue($(this))" />
</ItemTemplate>
</asp:TemplateField>
.....
<asp:TemplateField HeaderText="用户单位">
<ItemTemplate>
<asp:TextBox ID="UserSite" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="仪器序列号">
<ItemTemplate>
<asp:TextBox ID="FunctionNumber" runat="server" onblur="TestPutInValue($(this))" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<script type="text/javascript">
function TestPutInValue(obj)
{
obj.parent().parent().children().eq(7).val(你的客户名);
obj.parent().parent().children().eq(7).val(你的客户单号SN);
}
</script>
运行后HTML源代码如下所示:
<table id="ct100.....GridViewTest">
<th><td>服务/销售单号<td>....<td>用户单位</td><td>仪器序列号</td></th>
<tr><td><input id="ct....TestBox" type="text" onblur="TestPutInValue($(this))
" /><td>....<td><input id="ct....UserSite" type="text"/><td><td><input id="ct....FunctionNumber" type="text"/><td></tr>
.......
</table>
[解决办法]
obj.parent().parent().children().eq(7).val(你的客户名);
obj.parent().parent().children().eq(8).val(你的客户单号SN);
看你的图所示,客户名为第八列,客户单号为第九列,但是eq的序号以0开始,所以如上所示。
[解决办法]
楼主是想在Gridview中某几列变成文本框添加数据吗?
//下面代码是在Gridview的RowUpdating事件里添加 protected void GvUsers_RowUpdating(object sender, GridViewUpdateEventArgs e) { #region Users user = new Users(); // int uid = Convert.ToInt32(GvUsers.DataKeys[e.RowIndex].Value); string uname = ((TextBox)(GvUsers.Rows[e.RowIndex].Cells[1].Controls[0])).Text;//取第二列输入的文本 string truename=((TextBox)(GvUsers.Rows[e.RowIndex].Cells[2].Controls[0])).Text;//第三列 string pwd=((TextBox)(GvUsers.Rows[e.RowIndex].Cells[3].Controls[0])).Text; int dptid = Convert.ToInt32(((DropDownList)(GvUsers.Rows[e.RowIndex].Cells[4].FindControl("DropDpt"))).SelectedValue); if (user.Add(uname,truename,pwd,dptid)) //添加数据 { GvUsers.EditIndex = -1; UserBind(); } else { Common.ShowMessage.Show(Page, "true", "添加失败!", "AllUsers.aspx"); } #endregion }