我用PlaceHolder控件动态添加控件: Dim intRow As Integer = CType(ddlRow.SelectedValue.Trim, Integer)
Dim intcolumn As Integer = CType(ddlColumn.SelectedValue.Trim, Integer)
Dim intRowCounter As Integer
Dim intColumnCounter As Integer
Dim txtNewTextBox As TextBox For intRowCounter = 0 To intRow - 1
For intColumnCounter = 0 To intcolumn - 1
txtNewTextBox = New TextBox
txtNewTextBox.ID = "txtRow" & intRowCounter.ToString() & "Column" & intColumnCounter.ToString()
lhNews.Controls.Add(txtNewTextBox)
Dim litLabel1 As New LiteralControl
plitLabel1.Text = " "
plhNews.Controls.Add(litLabel1)
Next
Dim litLabel As New LiteralControl
litLabel.Text = "<br>"
plhNews.Controls.Add(litLabel)
Next
请问怎样得到添加后,TextBox里的值,好像是用FindControl(),但不知具体怎么写。
Dim intcolumn As Integer = CType(ddlColumn.SelectedValue.Trim, Integer)
Dim intRowCounter As Integer
Dim intColumnCounter As Integer
Dim txtNewTextBox As TextBox For intRowCounter = 0 To intRow - 1
For intColumnCounter = 0 To intcolumn - 1
txtNewTextBox = New TextBox
txtNewTextBox.ID = "txtRow" & intRowCounter.ToString() & "Column" & intColumnCounter.ToString()
lhNews.Controls.Add(txtNewTextBox)
Dim litLabel1 As New LiteralControl
plitLabel1.Text = " "
plhNews.Controls.Add(litLabel1)
Next
Dim litLabel As New LiteralControl
litLabel.Text = "<br>"
plhNews.Controls.Add(litLabel)
Next
请问怎样得到添加后,TextBox里的值,好像是用FindControl(),但不知具体怎么写。
解决方案 »
- activereport web 程序分页
- 【急】水晶报表的问题
- 后台添加网站模板问题.。。。。。。急
- Repeater编辑问题
- 如何为网站添加PDF下载的功能
- 再开一贴,给大分,框架页面刷新问题?
- 请问使用DATAGRID的editcommand事件时如何才可以访问编辑控件
- 100分,一个简单的问题,如何获取 frame 的 src 值?
- 怎么在程序中取到由存储过程RAISERROR产生的错误信息
- object sender, System.EventArgs e参数如何理解(就这么多了~~)
- 高分寻求解决的几个asp.net问题!急用!!!
- 求助:如何实现符合一个条件的所有数据和一个固定值的比较
Dim intcolumn As Integer = CType(ddlColumn.SelectedValue.Trim, Integer)plhNews.FindControl("txtRow" & intRowCounter.ToString() & "Column" & intColumnCounter.ToString())
返回Nothing
,TextBox)response.write(tb.Text)
{
//动态产生或装载控件
//也许需要连接控件事件处理函数
//加到父控件的Controls
}里生成或装载了动态控件。当控件在客户端触发,postback到服务器端时,IsPostBack==true,这些控件没有被重新生成,怎么能触发事件?所以答案是,当你需要动态生成或装载控件时,应该在if (!IsPostBack)之外做。我问为什么想在if (!IsPostBack)之内做呢?回答是想只生成一次,跟在ASPX页面里一样<form id="form1" runat=server>
<asp:Button id="Button1" runat="server" Text="Button1" OnClick="Button_Click"/>#%&%#&%^#&,你怎么会认为这个控件只生成一次呢?这些玩意也不是魔术,想生成一个Button对象,你需要用Button btn = new Button();需要触发它的Click事件,你需要用btn.Click += new EventHandler(YourHandler);即使象包含<asp:Button id="Button1" runat="server" Text="Button1" OnClick="Button_Click"/>的页面,它也是被转化成C#或VB文件,编译成assembly,然后再被执行的啊不信?加一个页面,TestControls.aspx:<%@ Page Debug="true" %>
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.SqlClient"%><form id="form1" runat=server>
<asp:Button id="Button1" runat="server" Text="Button1" OnClick="Button_Click"/>
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="false" GridLines="Both">
<Columns>
<asp:TemplateColumn HeaderText="Name">
<ItemTemplate><%# DataBinder.Eval(Container.DataItem,"Name")%></ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
<script language="C#" runat="server">
void Button_Click(Object sender, EventArgs e)
{
Button btn = (Button)sender;
Response.Write(btn.Text + " is clicked<BR>");
}void Page_Load(Object sender, EventArgs e)
{
Button btn = new Button();
btn.ID = "Button2";
btn.Text = "Button2";
btn.Click += new EventHandler(Button_Click);
form1.Controls.Add(btn);
if (!IsPostBack)
{
SqlDataAdapter da = new SqlDataAdapter("select Name=au_fname + ' ' + au_lname from authors", "server=localhost;database=pubs;uid=sa;pwd=;");
DataTable dt = new DataTable();
da.Fill(dt);
DataGrid1.DataSource = dt.DefaultView;
DataGrid1.DataBind();
}
//}//这是故意的</script>把最后一个“}”注释掉,然后在浏览器里向你的服务器调用TestControls.aspx
Dim objTextBox As TextBox
objTextBox = CType(plhNews.FindControl("txtRow0Column0"), TextBox)
返回Nothing