动态地将id分配给控件 - 控件位于asp .net中的datalist控件内 [英] dynamically assign id to controls - controls are inside datalist controls in asp .net

查看:52
本文介绍了动态地将id分配给控件 - 控件位于asp .net中的datalist控件内的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨frnds,



我使用datalist来显示数据。数据是4个选项的测试题。我有50个问题在datalist中显示。



通过使用ItemDataBound事件 - 我只向用户显示一个带有4个选项的问题。剩下的问题是看不见的。在Itemdatabound事件中 - 我正在为单选按钮分配id。但是id也没有分配给datalist,它显示不同的id。

  if (e.Item .ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
HiddenField HdSlNo =(HiddenField)e.Item.FindControl( HdSlNo);
RadioButton Option1 =(RadioButton)e.Item.FindControl( Option1);
RadioButton Option2 =(RadioButton)e.Item.FindControl( Option2);
RadioButton Option3 =(RadioButton)e.Item.FindControl( Option3);
RadioButton Option4 =(RadioButton)e.Item.FindControl( Option4);
RadioButton Option5 =(RadioButton)e.Item.FindControl( Option5);

Option1.ID = rdbtnoption1 _ + HdSlNo.Value.ToString( );
Option2.ID = rdbtnoption2 _ + HdSlNo.Value.ToString();
Option3.ID = rdbtnoption3 _ + HdSlNo.Value.ToString();
Option4.ID = rdbtnoption4 _ + HdSlNo.Value.ToString();
Option5.ID = rdbtnoption5 _ + HdSlNo.Value.ToString();
}







谢谢,

Suresh

解决方案

在itemDataBound事件上,只需将问题ID和选项ID分配给单选按钮控件。

或者您可以使用for循环来迭代选项/ question并将项目索引值分配给控件。



请记住,将出现不同的ID,因为每个数据列表项中的控件都需要一个唯一的ClientID,所以正确生成html并且视图状态有效。



Hi frnds,

I am using datalist for showing datas. Datas are test questions with 4 options.I have 50 questions displaying in datalist.

By using ItemDataBound event - i am making visible only one question with 4 options to user. Remaining questions are invisible . In the Itemdatabound event - i am assigning id to the radio buttons. but also id is not assigned to the datalist ,it showing different id.

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {                
HiddenField HdSlNo = (HiddenField)e.Item.FindControl("HdSlNo");
                RadioButton Option1 = (RadioButton)e.Item.FindControl("Option1");
                RadioButton Option2 = (RadioButton)e.Item.FindControl("Option2");
                RadioButton Option3 = (RadioButton)e.Item.FindControl("Option3");
                RadioButton Option4 = (RadioButton)e.Item.FindControl("Option4");
                RadioButton Option5 = (RadioButton)e.Item.FindControl("Option5");
                
                Option1.ID = "rdbtnoption1_" + HdSlNo.Value.ToString();
                Option2.ID = "rdbtnoption2_" + HdSlNo.Value.ToString();
                Option3.ID = "rdbtnoption3_" + HdSlNo.Value.ToString();
                Option4.ID = "rdbtnoption4_" + HdSlNo.Value.ToString();
                Option5.ID = "rdbtnoption5_" + HdSlNo.Value.ToString();
}




Thanks,
Suresh

解决方案

On itemDataBound event just assign the question id and option id to the radio button controls.
Or you can use for loop to iterate over the options/questions and assign the item index value to the control.

Bear in mind that different IDs will appear because the controls inside each Data List item will need a unique ClientID so the html is generated correctly and view state works.


  • It is possible to create a new dynamic control and to rename it
  • but the DataList will not allow you to rename the existing control ID that is defined inside the ItemTemplate
    have a look at this http://stackoverflow.com/a/18976091[^]


这篇关于动态地将id分配给控件 - 控件位于asp .net中的datalist控件内的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆