Asp.net ListView-动态控件和DataPager事件
我有一个绑定到对象数据源的listView控件。在ListView1_ItemDataBound事件中,我生成了一些动态控件。我这样做是因为根据特定的列值,我可能需要生成文本框、单选按钮、复选框等 这里有一些代码:Asp.net ListView-动态控件和DataPager事件,asp.net,Asp.net,我有一个绑定到对象数据源的listView控件。在ListView1_ItemDataBound事件中,我生成了一些动态控件。我这样做是因为根据特定的列值,我可能需要生成文本框、单选按钮、复选框等 这里有一些代码: ListViewDataItem item = (ListViewDataItem)e.Item; typez = Convert.ToInt32(DataBinder.Eval(item.DataItem,"Type").ToString()); if (typez == 1)
ListViewDataItem item = (ListViewDataItem)e.Item;
typez = Convert.ToInt32(DataBinder.Eval(item.DataItem,"Type").ToString());
if (typez == 1) //1 means generate radibutton
{
string[] options = DataBinder.Eval(item.DataItem, "QuestionDetail").ToString().Split(new string[] { delimiter }, StringSplitOptions.None);
questionID = Convert.ToInt32(DataBinder.Eval(item.DataItem, "Question_ID").ToString());
int optionCount = 1;
RadioButtonList rbl = new RadioButtonList();
//set ID for the radiobtnList to the questionid no.
rbl.ID = "mcq_" + questionID;
foreach (string s in options)
{
//adds the MCQ options to list item
ListItem li = new ListItem(Util.GetAlphabet(optionCount).ToUpper() + ". " + s, Util.GetAlphabet(optionCount).ToUpper(), true);
rbl.Items.Add(li);
optionCount++;
}
//PlaceHolder PlaceHolder1 = (PlaceHolder)e.Item.FindControl("PlaceHolder1");
PlaceHolder1.Controls.Add(rbl);
我也有数据寻呼机。当我转到下一页时,我想以某种方式捕获上一页中的用户响应。否则,所有用户响应都将丢失。我尝试使用ListView1_PagePropertiesChange事件。但在这里,我似乎没有得到页面中的动态控件
我需要得到单选按钮的选择值,这样我就可以保存它或放入一些会话变量,这样当用户返回到这个页面时,他就可以看到他的previous值
有人能就我做错了什么提出一些见解吗。问题是您必须在OnInit中创建控件,然后ViewState persister才能完成它的工作。如果在OnInit之后执行此操作,在ItemDataBound中,当触发回发时,控件不存在,并且它们的viewstate不会反序列化。
要访问单选按钮的值并选择其中一个,您必须查看请求。形成字典并找到它