<asp:button id=<%"btn"+i%> text="btn" runat="server"></asp:button>这样的话只能应用于 动行在客户端的html控件上 否则出错.....我在后台里写入
id="btn"+i
的话  我怎么调用它 "btn"+i.text 来显示text属性 那样一定错啊 ..

解决方案 »

  1.   

    依你的代码写下去:
    <input type="button" value="Button" onclick="dohehe()">
    <script language="javascript">
    function dohehe()
    {
             var i=3;
    alert(document.all.item('btn'+i).value);//获得btn3的text内容。
    alert(document.all.item('btn'+i).id);//获得btn3的id。
    }
    </script>
    其实如果你要在服务器处理函数的话,也可以在调用时传递参数this.id以获得btn3
      

  2.   

    ot:cyndi(下雨)  
    可我要用vb写在服务器端啊 你的document.all.item('btn'+i).value 我的用不到的...各位 还有好的方法吗?控件数组怎么样?
      

  3.   

    id="btn"+i
    这样的id是不认的 当用findcontrol找 "btn"+i 时候 出错 
    但我找原来的btn 没有错误  改变其属性 其所生成有控件属性值 都改变了
      

  4.   

    int i=3;
    ((Button)this.FindControl("bt"+i)).Text.ToString();
    这样就可以啦!:P
    不过,因为我没写过vb,所以你得自己看看改成vb的代码啦!!
      

  5.   

    你说"这样的id是不认的 当用findcontrol找 "btn"+i 时候 出错 "
    怎么会呢?我的代码就是用findcontrol实现的呀,没有错的!
      

  6.   

    webform1.aspx.cs部份代码如下:
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    int i=3;
    Button bt=new Button();
    bt.ID="bt"+i;
    bt.Text="ksksksksk";
    bt.Click+= new System.EventHandler(this.Button1_Click);
    test.Controls.Add(bt);
    }private void Button1_Click(object sender, System.EventArgs e)
    {
    int i=3;
    Response.Write(((Button)this.FindControl("bt"+i)).Text.ToString());
    }
    webform1.aspx部份代码如下:
    <script language="javascript">
    function dohehe()
    {
            var i=3;
            alert(document.all.item('bt'+i).value);
            alert(document.all.item('bt'+i).id);
    }
    </script>
    <body>
    <form id="Form1" method="post" runat="server">
    <asp:Panel ID="test" Runat="server"></asp:Panel>
    <INPUT type="button" value="Button" onclick="dohehe()">
    </form>
    </body>如果还不能解决的话。就再发消息给我吧,我就不信搞不定!:P