请问有什么办法可以解决这个问题:即根据数据库动态添加多个自定义服务器WEB控件,而且能够根据数据库赋值。最重要的是,必须在aspx文件中定义的控件之前。
试过在aspx文件中直接<%=函数%>或者<%#函数%>都不能解决。
10 个解决方案
#1
你是要添加自定义控件还是用户控件?这两个概念不同。
而你的自定义组件是什么?但从你的page.control.add看好像是自定义控件了。
而你的自定义组件是什么?但从你的page.control.add看好像是自定义控件了。
#2
是自定义控件,主要是根据赋值,显示不同的表格。
#3
在PageLoad里代码如下
for (int i = 0; i < GridView1.Rows.Count; i++)
{
TextBox txt = new TextBox();
txt.ID = "txt" + i;
GridView1.Rows[i].Cells[7].Controls.Add(txt);
}
在一个按钮的点击事件中
for (int i = 0; i < GridView1.Rows.Count; i++)
{
Control controlText = GridView1.Rows[i].Cells[7].FindControl("txt" + i);
}
特别注意:
动态添加控件的代码不可放到非IsPostBack里,对动态添加的控件,无论是否IsPostBack都要执行才可以。
比如:
Page_Load()
{
if (!this.IsPostBack)
{
}
this.addControls();
}
for (int i = 0; i < GridView1.Rows.Count; i++)
{
TextBox txt = new TextBox();
txt.ID = "txt" + i;
GridView1.Rows[i].Cells[7].Controls.Add(txt);
}
在一个按钮的点击事件中
for (int i = 0; i < GridView1.Rows.Count; i++)
{
Control controlText = GridView1.Rows[i].Cells[7].FindControl("txt" + i);
}
特别注意:
动态添加控件的代码不可放到非IsPostBack里,对动态添加的控件,无论是否IsPostBack都要执行才可以。
比如:
Page_Load()
{
if (!this.IsPostBack)
{
}
this.addControls();
}
#4
this.FindControl来获取看看呢
#5
郁闷,我说的不够清楚吗?
我能够添加自定义控件,现在要求的是动态添加的自定义WEB服务器控件位置在ASPX中设置的控件前面
我能够添加自定义控件,现在要求的是动态添加的自定义WEB服务器控件位置在ASPX中设置的控件前面
#6
luguo
#7
不知道你要添加的是服务器端的还是客户端的组件?
服务器端的话必须要放在Form表单里面,客户端则通过js添加
服务器端的话必须要放在Form表单里面,客户端则通过js添加
#8
你在这些控件前面放一个Div,在其中放置一个Panael试一下,如果没有控件可加载,就把div隐藏掉。
#9
<asp:Panel id="Panel1" runat="server" visible="false"
<asp:PlaceHolder id="PlaceHolder1" runat="server" visible="true"
<Div id="div1" runat="server" visible="false"
<Span id="span 1" runat="server" visible="false"
如 8 楼,用 C# 控制,以上四个容器 tag 或控件,哪个要显示、哪个要隐藏,
visible="true" or "false"
把 Custom Control 放在这四种容器的其中一种。
<asp:PlaceHolder id="PlaceHolder1" runat="server" visible="true"
<Div id="div1" runat="server" visible="false"
<Span id="span 1" runat="server" visible="false"
如 8 楼,用 C# 控制,以上四个容器 tag 或控件,哪个要显示、哪个要隐藏,
visible="true" or "false"
把 Custom Control 放在这四种容器的其中一种。
#10
protected void Page_Load(object sender, EventArgs e)
{
Button btn1 = new Button();
btn1.ID = "myBtn1";
PlaceHolder1.Controls.Add(btn1);
}
{
Button btn1 = new Button();
btn1.ID = "myBtn1";
PlaceHolder1.Controls.Add(btn1);
}
#1
你是要添加自定义控件还是用户控件?这两个概念不同。
而你的自定义组件是什么?但从你的page.control.add看好像是自定义控件了。
而你的自定义组件是什么?但从你的page.control.add看好像是自定义控件了。
#2
是自定义控件,主要是根据赋值,显示不同的表格。
#3
在PageLoad里代码如下
for (int i = 0; i < GridView1.Rows.Count; i++)
{
TextBox txt = new TextBox();
txt.ID = "txt" + i;
GridView1.Rows[i].Cells[7].Controls.Add(txt);
}
在一个按钮的点击事件中
for (int i = 0; i < GridView1.Rows.Count; i++)
{
Control controlText = GridView1.Rows[i].Cells[7].FindControl("txt" + i);
}
特别注意:
动态添加控件的代码不可放到非IsPostBack里,对动态添加的控件,无论是否IsPostBack都要执行才可以。
比如:
Page_Load()
{
if (!this.IsPostBack)
{
}
this.addControls();
}
for (int i = 0; i < GridView1.Rows.Count; i++)
{
TextBox txt = new TextBox();
txt.ID = "txt" + i;
GridView1.Rows[i].Cells[7].Controls.Add(txt);
}
在一个按钮的点击事件中
for (int i = 0; i < GridView1.Rows.Count; i++)
{
Control controlText = GridView1.Rows[i].Cells[7].FindControl("txt" + i);
}
特别注意:
动态添加控件的代码不可放到非IsPostBack里,对动态添加的控件,无论是否IsPostBack都要执行才可以。
比如:
Page_Load()
{
if (!this.IsPostBack)
{
}
this.addControls();
}
#4
this.FindControl来获取看看呢
#5
郁闷,我说的不够清楚吗?
我能够添加自定义控件,现在要求的是动态添加的自定义WEB服务器控件位置在ASPX中设置的控件前面
我能够添加自定义控件,现在要求的是动态添加的自定义WEB服务器控件位置在ASPX中设置的控件前面
#6
luguo
#7
不知道你要添加的是服务器端的还是客户端的组件?
服务器端的话必须要放在Form表单里面,客户端则通过js添加
服务器端的话必须要放在Form表单里面,客户端则通过js添加
#8
你在这些控件前面放一个Div,在其中放置一个Panael试一下,如果没有控件可加载,就把div隐藏掉。
#9
<asp:Panel id="Panel1" runat="server" visible="false"
<asp:PlaceHolder id="PlaceHolder1" runat="server" visible="true"
<Div id="div1" runat="server" visible="false"
<Span id="span 1" runat="server" visible="false"
如 8 楼,用 C# 控制,以上四个容器 tag 或控件,哪个要显示、哪个要隐藏,
visible="true" or "false"
把 Custom Control 放在这四种容器的其中一种。
<asp:PlaceHolder id="PlaceHolder1" runat="server" visible="true"
<Div id="div1" runat="server" visible="false"
<Span id="span 1" runat="server" visible="false"
如 8 楼,用 C# 控制,以上四个容器 tag 或控件,哪个要显示、哪个要隐藏,
visible="true" or "false"
把 Custom Control 放在这四种容器的其中一种。
#10
protected void Page_Load(object sender, EventArgs e)
{
Button btn1 = new Button();
btn1.ID = "myBtn1";
PlaceHolder1.Controls.Add(btn1);
}
{
Button btn1 = new Button();
btn1.ID = "myBtn1";
PlaceHolder1.Controls.Add(btn1);
}