怎样用JavaScript动态生成服务器端控件?
如能否用以下函数来动态生成有服务器端控件行?
function addline(content)
{
for (var j=0;j<content;j++)
{
newline=document.all.listother.insertRow();
rowIndex = newline.rowIndex + 4;
var txtID='txtID'+rowIndex newline.insertCell(0).innerHTML=' <asp:TextBox ID='+txtID+' runat="server" Width="200px" ></asp:TextBox>'
newline.style.textAlign = "center";
}
}
你需要明白,asp.net服务器端是经过编译之后,最终生成为客户端代码,相当于一个是老妈,一个是儿子,怎么可能儿子产生老妈呢
Misssion Is Impossible建议你好好去学学Asp.Net和HTML协议的原理。
怎样用JavaScript动态生成服务器端控件?
如能否用以下函数来动态生成有服务器端控件行?
function addline(content)
{
for (var j=0;j<content;j++)
{
newline=document.all.listother.insertRow();
rowIndex = newline.rowIndex + 4;
var txtID='txtID'+rowIndex
newline.insertCell(0).innerHTML=' <asp:TextBox ID='+txtID+' runat="server" Width="200px" ></asp:TextBox>'
newline.style.textAlign = "center";
}
}
哈哈,笑死了,服务器控件,发送到客户端就HTML了啊,你还用服务器控件,不要搞笑了啊。可以变,不过服务器端要写一些东西
你肯定知道那些input 的 name 在客户端的命名规则,你可以自己做服务器端使用 Request[name] 的方式获取.方法很多,能实现你的需求即可.
你在此可以胡乱写任何字符串,asp.net根本无法承认你这是什么服务器控件。
protected void Page_Load(object sender, EventArgs e)
{
UpdatePanel up = new UpdatePanel();
up.ID = "UpdatePanel1";
this.Form.Controls.Add(up); LiteralControl lc = new LiteralControl(DateTime.Now.ToString());
up.ContentTemplateContainer.Controls.Add(lc); Button btn = new Button();
btn.Text = "Refresh";
up.ContentTemplateContainer.Controls.Add(btn);
}
那我能不能如下ajax操作?
function addline(content)
{
Test.AddControls()
}
Ajax.Utility.RegisterTypeForAjax(typeof(Test));[Ajax.AjaxMethod]
public void AddControls()
{
UpdatePanel up = new UpdatePanel();
up.ID = "UpdatePanel1";
this.Form.Controls.Add(up); LiteralControl lc = new LiteralControl(DateTime.Now.ToString());
up.ContentTemplateContainer.Controls.Add(lc); Button btn = new Button();
btn.Text = "Refresh";
up.ContentTemplateContainer.Controls.Add(btn);}
--------------------
我狂晕.............
你随便去打开一个页面的源码看看,有没有<asp:TextBox>这样的东西。。在aspx里之所以可以这么写都是因为他有一个自己特定的处理程序,你也可以自已写处理程序,继承httpHandle就可以
在aspx里<asp:TextBox>这么写,到客户端表现的还是<input type="text" id="txt" ... />你直接用JS显示 <asp:TextBox>这个东西,浏览器根本不认识,它只认识<input type="text" id="txt" ... />所以你只可以用JS创建原素一般用createElement("") 方法
不是很懂
你为什么要这么做?服务器端的控件最终输出到客户端还是变成了基本的html控件.所以你只需动态生成基本的那些html元素即可
最多只能设置把客户端dom元素数据提交到服务端. 第2章 服务器控件开发中的调试技术 [阅读本章内容]
第3章 从零开始开发服务器控件 [阅读本章内容]
第4章 服务器控件属性 [阅读本章内容]
第5章 事件和数据回发机制 [阅读本章内容]
第6章 页面状态机制(视图状态和控件状态) [阅读本章内容]这涉及到对控件生成周期的理解. 这两天会共享这五章内容, 请见:
http://blog.csdn.net/ChengKing/archive/2008/08/18/2792440.aspx