<asp:repeater id="PreviewList" Runat="server">
  <ItemTemplate>
    <tr>
      <td class="White_10pt"><%# DataBinder.Eval(Container.DataItem,"Question_Name") %>
 <br>
  <%# Init_Table()%>
      </td>
    </tr>
  </ItemTemplate>
</asp:repeater>我用Repeater绑定数据,Repeater里面有一个Init_Table函数用来生成页面上的控件,函数体如下:
public string Init_Table()
{
  string script= "";    script += "<table>";
  script += "  <tr>";
  script += "    <td>";
  script += "      <asp:TextBox id='TextBox6' runat='server'>测试</asp:TextBox>";
  script += "    </td>";
  script += "  </tr>";  
  script += "</table>"; 
 
  return script;
}
结果TextBox显示不出来,只显示“测试”两个字,
如果我把TextBox换成html控件就可以了,如下:
public string Init_Table()
{
  string script= "";    script += "<table>";
  script += "  <tr>";
  script += "    <td>";
  script += "       <INPUT ID='SingleLint' type ='text' value='测试' ";
  script += "    </td>";
  script += "  </tr>";  
  script += "</table>"; 
 
  return script;
}
用上面这个函数就可以,请问怎么回事?

解决方案 »

  1.   

    程序是在客户段生成控件,TextBox是服务器段控件而 type ='text' 是客户端控件,也许是这个原因吧。
      

  2.   

    服务器控件不能用这种方式来动态生成控件,这种方法只能生成客户端控件和HTML代码,生成服务器控件的方法为:
    TextBox txt=new TextBox();
    txt.ID="txt";
    txt.Text="dfsdfs";
    Page.Controls[1].Controls.Add(txt);
      

  3.   

    我是根据Repeater每一条数据,显示下面的明细,明细的类型可能不同,
    有可能是radiobutton、checkbox、TextBox等所以我不能用下面这种方式
    TextBox txt=new TextBox();
    txt.ID="txt";
    txt.Text="dfsdfs";
    Page.Controls[1].Controls.Add(txt);
      

  4.   

    如果是服务端控件的话,就可以下面这个方法读取值
    string str=((TextBox)(this.FindControl("TextBox1"))).Text;但如果换成客户端控件的话怎么来实现呢?
      

  5.   

    document.getElementById("TextBox1") ;
    或 document.Elements["TextBox1"]
      

  6.   

    服务器端控件怎么在客户端生成呀?
    晕死啦!
    服务器端控件是要在服务器端初始化,转换转换成标准的HTML控件的!
    你这样就等于让客户端上直接运行服务器控件的
    这怎么能行呀?
    晕死啦!
      

  7.   

    那我如何用C#在.cs文件中读出html控件的上的值?
      

  8.   

    Label[] myLabel = new Label[4];
    myLabel[0] = LbPointNum;
    myLabel[1] = LbVipNum;
    myLabel[2] = LbMultiRoomNum;
    myLabel[3] = LbThMultiRoomNum;我这个时把控件赋给数组的,我觉得这样我的控件就动态了,可以这样访问了
    for(int i;i<4;i++)
    {
        Response.Write(myLabel[i].text+"<br>");
    }
    也不知道我这个对你有没有用
    有用的话就加点分吧,没分了
      

  9.   

    jxufewbt(我的目标是5星) 
    我爱你