有两个表:
1.VoteMast:包括VoteID,VoteTitle,VoteSum
2.VoteDetails:包括VoteID,VoteDetailsID,VoteItems,VoteNum现在有一个通过用户控件创建的自定义控件如下:
   .ascx
--------------------------
|Label1                  | 
|------------------------|    
|  RadioButtonList1      |              
|________________________|
控件的大体形状如上:功能
用Label1去获得VoteTiTle
用RadioButtonList1去获得参加选举的具体项目private string votetitle
public string VoteTitle//选举的题目
{
     get{return votetitle;}
     set{votetitle=value;}
}
public page_load(.....)
{
    //查询数据库取的相应信息
}
--------------------------
   .aspx
__________________________
|Label1                  | 
|------------------------|    
|  RadioButtonList1      |              
|________________________|
|   Button1 Button2      |
|________________________|Button1投票
Button2结果现在对Button1编程,那么我要怎么做才能取得
Button_OnClick(....)
{
   string strSelected
    现在如何用strSelected去获得RadioButtonList1.SelectedText的值?  
}

解决方案 »

  1.   

    ascx中提供一个公用方法public string GetSelectedText()
    {
        return this.RadioButtonList1.selectedItem.Text;
    }
    在aspx中strSelected = 控件.GetSelectedText();
      

  2.   

    我也想过一些办法比如:在.ascx中添加一个属性
    private string selectText
    public  string SelectText  //取得RadioButtonList1.SelectText
    {
        get{return selectText;}
        set{ selectText=value; }
    }
    在Page_Load(......)中
    {
        selectText=RadioButtonList1.SelectText.tostring()
    }在.aspx中访问SelectText可是每次获得的值都是空值.加了IsPostBack也不行.
      

  3.   

    在控件里在加一个属性
    public string SelectedText//选举的题目
    {
         get{return RadioButtonList1.SelectedText;}
    }
      

  4.   

    在控件里在加一个属性
    public string SelectedText//选举的题目
    {
         get{return RadioButtonList1.SelectedText;}
    }
    ---------------------------------------------------
    我做过的,不行!在ascx中提供一个公用方法,这个没做过,测试一下再说
      

  5.   

    郁闷啊,刚刚想测试一下,结果我的vs.net2003无法开启
    消息框提示说:
      因为无法加载MSXML3.DLL文件,所以visual studio.net无法开启.郁闷..........
      

  6.   

    在.aspx中访问SelectText可是每次获得的值都是空值.加了IsPostBack也不行.
    ——————————————————————————————————————————
    在page_load中访问SelectText吗?这不对。重复说过无数次了,page_load只应该处理控件自身恢复上一页面输出时状态的逻辑,以便之后asp.net给你进一步装载子控件、处理提交值等等,不应该处理业务逻辑。业务逻辑应该等到page_load执行结束之后执行。在page_load中读取SelectText,你干吗那么着急呢?你为什么不在触发回发或者回调的事件中再进行业务处理呢?
      

  7.   

    另外如果你使用vs.net2003开发,要注意你可能写出将来完全无法正常运行的程序。asp.net2.0与asp.net1.1在处理动态装载的控件方面不兼容。例如如果你在page_load中使用LoadControl转载了a.ascx,在1.1中你可以立刻得到a.ascx上各控件的状态及客户端提交的值,而在asp.net2.0中你根本无法得到,必须到page_load执行完毕之后的其他事件中才能得到。在之后的事件中,如果你动态装载子控件,在1.1中于page_load中装载几乎完全一样,而在2.0中则正好相反什么状态、客户端提交值都从此无法得到了。我相信asp.net2.0这样做对于加快系统执行速度、标准化动态装载的控件流程都有好处。但是,很多1.1下调时成功的程序都会出错。特别是程序员不记得2.0与1.1并不兼容的时候,调试起来更加困难。估计asp.net3.0与asp.net2.0的逻辑兼容。如果你不是被逼无奈,特别是你想写出非常多动态装载控件的智能改变界面的交互程序(和ui中间件系统)的时候,我建议你使用vs2005而不要使用vs.net2003,以免费了武功。
      

  8.   

    你可以使用一个动态装载的TextBox试验一下,在page_load中状态它,然后立刻读值,在asp.net1.1下是可以得到提交的值的,在asp.net2.0下则无法得到。1.1的方式过度体贴程序员的个别需求了,造成业务逻辑写到page_load中这种错误也往往会蒙混过去。我看到很多入门书、网上的例子都在page_load中写那些本不该在page_load中写的代码。那些代码在asp.net2.0下重新运行会造成逻辑错误。
      

  9.   

    向cpp2017(慕白兄),sp1234学习,请您们多指教!
    cpp2017(慕白兄)您的回答帮解决了我最想要解决的问题,谢谢!