首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

简单有关问题,纠结了,求指导.

2012-08-21 
简单问题,纠结了,求指导....http://q.cnblogs.com/q/38952/[解决办法]我想问的是哪里出现问题(也就是你所

简单问题,纠结了,求指导....

http://q.cnblogs.com/q/38952/

[解决办法]
我想问的是哪里出现问题(也就是你所说的用了几种方法都不行的地方)?
[解决办法]
利用JS+AJAX

因为Table结果是固定的,你可以通过当前文本框,根据索引找到当前行的其他文本框,然后赋值
[解决办法]
你动态生成的text没有ID标识吗? 有得话 js直接赋值不可以?
[解决办法]

探讨
利用JS+AJAX

因为Table结果是固定的,你可以通过当前文本框,根据索引找到当前行的其他文本框,然后赋值

[解决办法]
js操作table
[解决办法]
在后台用这种方式往你的前台页面上塞一个隐藏值
writer.Write("<input type=\"hidden\" id=\"$canResize\" name=\"$canResize\" value=\"{0}\" />", canResize);
然后用js取出来赋给TextBox
 var hiddenFieldClientID = document.getElementById("$hiddenFieldClientID").value;
 var hiddenField = document.getElementById(hiddenFieldClientID);
TextBox.value=hiddenField 

但是还是建议你用ajax。。。
[解决办法]
HTML code
<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中某几列变成文本框添加数据吗?

C# code
//下面代码是在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        } 

热点排行