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

js当前上下文找不到控件,该怎么解决

2012-04-16 
js当前上下文找不到控件HTML code%@ Page LanguageC# MasterPageFile~/MasterPage.master AutoEven

js当前上下文找不到控件

HTML code
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Weekly.aspx.cs" Inherits="Weekly" Title="Untitled Page" %><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"><script language="javascript" type="text/javascript"><!--    function getClientId()     {      var paraId1 = '<%= TextBox1.ClientID %>';//注册控件      return {Id1:paraId1};//生成访问器    }//--></script><asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"        AutoGenerateColumns="False" CellPadding="1" ForeColor="#333333" GridLines="None" ShowFooter="True" OnRowCommand="GridView1_RowCommand" OnRowDataBound="GridView1_RowDataBound" PageSize="5" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating">        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" HorizontalAlign="Center" />        <Columns>            <asp:TemplateField HeaderText="序号" SortExpression="序号">                <EditItemTemplate>                    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("序号") %>'></asp:TextBox>                </EditItemTemplate>                                <ItemTemplate>                    <asp:Label ID="Label2" runat="server" Text='<%# Bind("序号") %>'></asp:Label>                </ItemTemplate>            </asp:TemplateField>        </Columns></asp:GridView> </asp:Content>


总是在注册控件那提示“上下文找不到‘TextBox1’”,这是怎么回事呢?

[解决办法]
TextBox1放在模板里面,会有很多个TextBox的,
你应该这样
function getClientId(x)
{
var paraId1 = x;//注册控件
return {Id1:paraId1};//生成访问器
}

确定要使用哪行当TextBox1
[解决办法]
textbox在gridview里不能被直接的访问到滴,编译器找不到啊。
[解决办法]
其实换一种思路。比如你后台数据中有ID这一列。然后前台

<asp:TextBox ID="txt_<%# Eval("ID")%>" runat="server" Text='<%# Bind("序号") %>'></asp:TextBox>
[解决办法]
function getClientId()
{
var paraId1 =document.getElementById('<%= GridView1.ClientID %>').getElementsByTagName("input");//注册控件
return {Id1:paraId1};//生成访问器
}
 <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("序号") %>'></asp:TextBox>
生成的html代码是input
[解决办法]
加了模板后你的控件ID就变成动态的了类似于CsdnUbbEditorStatusbar_CsdnUbb_1这样子了,所以你还去TextBox1肯定是取不到值的!

热点排行