近段时间用asp实现自定义表单的时候要实现这样一个功能,就是一段 web控件的定义从后台传到前台并转换成控件,然后后台获取这些控件里的值,下面举个例子来实现。
后台一个方法用于获取一个text控件的定义:
public string getDefine()
{
return "<input type='text' id='text1' name='text1' runat='server' />";
}
然后前台js写个方法调用服务端一个方法来获取这个字符串,并将其布局在一个叫div_main 的div里面
<script type="text/javascript" language="javascript">
window.onload = function() {
var inntext = "<%=getDefine()%>";
alert(inntext);
document.getElementById("div_main").innerHTML = inntext;
}
</script>
这样后台可以通过 Request.Form["text1"] 来获取这个控件里所填的值。
注:还有本来我实现控件是后台直接调用 Response.Write("定义") ,虽然能把控件表现到界面上,但是从源文件里可以发现它只是在页面代码的最顶端添加了这一行代码的定义,没有放到<Form>标签里,这样的话后台无法获取这个控件的值。