我在placeHolder中动态添加了一个radiobuttonlist,里面的radio也是动态添加的,请问当点提交时怎么获取在radioButtonList中选中的值,谢了,我只有10分,不好意思。。
解决方案 »
- 在ASP.NET .cs 页面里如何接受XMLHTTP传过来的参数?
- jquery 获取焦点在文本之后问题
- 请问我更新数据库的后,为什么立刻数据库没有改变呢?
- 设置了left=(screen.width-530)/2但为何仍不居中显示??
- 输入的日期1977-10-01插入SQL数据库之后就变成了1977-10-1 0:00:00 ,后面多出的时间如何去掉呢?
- 使用SqlDatasource开放式并发Update数据失败,求解决方法
- 求一日期控件但必需有时间选择!
- 关于写文件遇到的问题:
- 急急急!!!请进!!
- style("visibility")="visible"与visible=true有何区别?
- 向报表传递参数不成功,请帮忙看看代码!
- web用户控件问题??急!!
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.PlaceHolder PlaceHolder1;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
RadioButtonList rbl = new RadioButtonList();
this.PlaceHolder1.Controls.Add(rbl);
//注意这里,现加载radiobutton,再添加item项 if(!IsPostBack)
{
for(int i=0;i<5;i++)
{
rbl.Items.Add(new ListItem(i.ToString(),i.ToString()));
}
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e)
{
this.TextBox1.Text = ((RadioButtonList)this.PlaceHolder1.Controls[0]).SelectedIndex.ToString();
}
}
}为什么要先加载radiobuttonlist,然后再给他添加item项呢?大致的说,在创建动态控件时(this.PlaceHolder1.Controls.Add(rbl);),控件处于原始阶段(控件生存周期的开始),而此时父控件PlaceHolder1处于Load阶段(静态控件的阶段变化和页面是一致的,Page_Load时候,页面处于Load阶段),这时候,父控件会调用子控件的一些方法,让子控件追赶上父控件的阶段,使得在这步骤中,子控件radiobuttonlist迅速从init->load,而在init阶段,会调有TrackViewState方法追踪并将控件后面的变化(本例中指的是添加item项)保存到stateBag对象中.在this.PlaceHolder1.Controls.Add(rbl);之后来添加item项,由于调用了TackViewState, 这个变化被记录下来,如果添加item项位于,this.PlaceHolder1.Controls.Add(rbl);之前,那么由于还没有启动视图状态追踪,所以这个变化并没有被保存下来,在点击提交按钮postback后,就自然找不到radiobuttonlist的item项,因为这时根本不存在这些项,所以SelectedIndex的值就为1.
http://blog.joycode.com/saucer/archive/2004/10.aspx