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

请问js给gridview中textbox赋值的有关问题

2012-04-01 
请教js给gridview中textbox赋值的问题请教 我目前是一个动态自增行的gridview,第一列是一个textbox和一个l

请教js给gridview中textbox赋值的问题
请教 我目前是一个动态自增行的gridview,第一列是一个textbox和一个linkbutton 
点击linkbutton弹出一个窗口选择姓名,然后把所选的姓名返回到 textbox中 
可是前台js无法给gridview中的textbox赋值 找不到textbox控件 

部分代码如下

HTML code
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"    AutoGenerateColumns="False" BackColor="#4D77B1" BorderColor="#4D77B1" BorderStyle="None"    BorderWidth="1px" CellPadding="3" CellSpacing="1" GridLines="None" PageSize="12"    Style="font-size: 12px" Width="100%" OnPreRender="GridView1_PreRender"         onrowdatabound="GridView1_RowDataBound" >    <PagerSettings Visible="False" />    <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />    <Columns>            <asp:TemplateField HeaderText="参会人员">            <ItemTemplate><asp:TextBox ID="Realname" runat="server"  Width="70%" Height="26px"></asp:TextBox><A href="javascript:void(0)"><IMG onclick="openuser1();" alt="" src=            "../images/FDJ.gif" border="0"></A>            <%--<asp:DropDownList runat="server" ID="Realname" DataSourceID="SqlDataSource1"                     DataTextField="Realname" DataValueField="Username" Width="98%"                     onselectedindexchanged="Realname_SelectedIndexChanged" >            <asp:ListItem>——请选择——</asp:ListItem>            </asp:DropDownList>                       <asp:SqlDataSource ID="SqlDataSource1" runat="server"                     ConnectionString="<%$ ConnectionStrings:qpoaConnectionString6 %>"                     SelectCommand="SELECT [Username], [Realname] FROM [qp_username]"></asp:SqlDataSource>--%>                   </ItemTemplate>            <ItemStyle Width="150px" Wrap="False" HorizontalAlign="Center" />        </asp:TemplateField>                                                                                                                                              <asp:TemplateField HeaderText="负责工作">            <ItemTemplate>            <asp:DropDownList runat="server" ID="mettingSX" DataSourceID="SqlDataSource2"                     DataTextField="mettingSX" DataValueField="mettingSX" Width="98%">            <asp:ListItem Value="——请选择——">——请选择——</asp:ListItem>            </asp:DropDownList>                       <asp:SqlDataSource ID="SqlDataSource2" runat="server"                     ConnectionString="<%$ ConnectionStrings:qpoaConnectionString7 %>"                     SelectCommand="SELECT [mettingSX] FROM [mettingAP]"></asp:SqlDataSource>                   </ItemTemplate>            <ItemStyle Width="450px" Wrap="False" HorizontalAlign="Center" />        </asp:TemplateField>                                                <asp:TemplateField HeaderText="完成时限">            <ItemTemplate>            <asp:TextBox ID="endtime" Width="100%" runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.endtime") %>'                    onclick="setDayHM(this);"></asp:TextBox>            </ItemTemplate>            <ItemStyle Width="130px" Wrap="False" HorizontalAlign="Center" />        </asp:TemplateField>                                                <asp:TemplateField HeaderText="添加">            <ItemTemplate>                <asp:Button ID="btnAdd" runat="server" Text="添加" OnClick="btnAdd_Click" />                <asp:Button ID="btnHiddenClick" runat="server" Text="Add" Style="display: none" mce_Style="display: none"                    OnClick="btnHiddenClick_Click" />            </ItemTemplate>            <ItemStyle Width="40px" Wrap="False" HorizontalAlign="Center" />        </asp:TemplateField>    </Columns>    <RowStyle BackColor="#FBFCFE" ForeColor="Black" />    <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" />    <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" />    <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" Wrap="False" />    <AlternatingRowStyle BackColor="#E6EDF7" />    <EmptyDataTemplate>        <div align="center">            <font color="white">无相关数据!</font></div>    </EmptyDataTemplate></asp:GridView> 


js代码

C# code
<script type="text/javascript">var  wName_1;  function  openuser1()  {  var num=Math.random();var str=""+document.getElementById('Username').value+"";wName_1=window.showModalDialog("../OpenWindows/open_openupsir.aspx?tmp="+num+"&requeststr="+str+"","window", "dialogWidth:650px;DialogHeight=580px;status:no;scroll=yes;help:no");                var arr = wName_1.split("|");for(var i=0;i<arr.length;i++){ document.getElementById("Username").value=arr[0]; //这个是前台textbox 可以获取返回值[color=#FF0000]document.getElementById("Realname").value=arr[1];[/color] //这个是gridview中的textbox,无法获取返回值,这个红色的肯定不对 但是我不知道怎么能够给gridview中的textbo赋值}}</script>


请各位前辈帮忙~!我的JS确实不怎么样,头疼啊~!~

[解决办法]
客户端的id="Realname"是不存在的,所以document.getElementById("Realname")总是错误的
你应该在
GridView1_RowDataBound事件里面把Realname的ClientID赋值给openuser1()函数

修改1
<ItemTemplate><asp:TextBox ID="Realname" runat="server" Width="70%" Height="26px"></asp:TextBox><A href="javascript:void(0)"><IMG id="xx" runa=server alt="" src=
"../images/FDJ.gif" border="0"></A>

修改2
GridView1_RowDataBound事件
TextBox t = e.Row.FindControl("Realname") as TextBox ;
System.Web.UI.HtmlControls.HtmlImage x = e.Row.FindControl("xx") as System.Web.UI.HtmlControls.HtmlImage;
x.Attributes.Add("onclick","openuser1('" +t.ClientID + "')");


修改3
var wName_1;
function openuser1(xxxx)
{
....
document.getElementById(xxxx).value=arr[0];

}



热点排行