问题一:
我9个文本框有一个dropdownlist,其ListItem为1到9,我在其SelectedIndexChanged里面实现根据SelectedValue的值就显示几个文本框,但我怎么能快速的获取这几个文本框的值,能否使用for循环?
for (int i=1;i<Convert.toint32(dropdownlist.selectedvalue);i++)
{
    ???这里面代码怎么写?
}
问题二:
页面之间传递参数的方法有那些?我只会两种方法1、url.aspx?xxx=yyy,yyy=zzz的方法,2、使用Session的方法。但使用方法1的时候有时候不能让用户看到后面的参数,使用方法2又造成Session太多很混乱,有没有什么好的方法和建议?

解决方案 »

  1.   

    1.
    你的文本框有没有规律呀?
    比如这样的
    <asp:TextBox ID="tb1" runat="server"/>
    ......
    <asp:TextBox ID="tb9" runat="server"/>string s="";
    for(int i=1;i<9;i++)
    {
        s+=","+((TextBox)FindControl("tb"+i.ToString())).Text;
    }
    s=s.Substring(1);
    //s就是各个TextBox中的值,用,连接的2.
    可以用方法1
    但是是这样的url.aspx?x=1&y=2&z=3
    用&连接变量/值 而不是,你可以使用Server.Transfer("url.aspx?x=1&y=2&z=3");来转向其他页面,这样用户就看不到参数/值了
      

  2.   

    小弟知道甚少,只作参考:
    问题一:用
    int a=Convert.toint32(dropdownlist.selectedvalue);
    switch(a)
    case 1:then textbox1.visible=true,string b=textbox1.text;break;
    case 2:then ...... break;
    case 3:
    ....可以看看switch的用法!相信可以完成你想要的功能!
    问题二:你说的是最常用的二种方法,还有很多种方法,但大多都基于session,个人认为,这里我在别的地方看到的:
    ASP.NET  WEB  FORMS    给开发者提供了极好的事件驱动开发模式。然而这种简单的应用程序开发模式却给我们带来了一些小问题,举个例子,在传统的ASP应用程序中,你能够通过POST方法很容易的把一个值或多个值从一个页面传送到另一个页面,用同样的方法在ASP.NET中实现有点麻烦。在这里,我们可以通过其他方式来解决这种情形。ASP.NET为我们提供了三种方式,一种是可以通过用QueryString来传送相应的值,再一种是通过session变量来传送相应的值,还有就是通过Server.Transfer方法来实现。下面分别一一介绍:    
     
    一、使用Querystring  
    Querystring是一种非常简单的传值方式,其缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象。如果你想传递一个安全性不是那么太重要或者是一个简单的数值时,用此方法最好不过了。下面通过一个小例子来完成传值工作,步骤如下:  
    1、创建一个web  form  
    2、在新建的web  form中放置一个button1,在放置两个TextBox1,TextBox2    
    3、为button按钮创建click事件  
    代码如下:  
    private  void  Button1_Click  
    (object  sender,  System.EventArgs  e)  
    {  
     string  url;  
     url="webform2.aspx?name="  +    
       TextBox1.Text  +  "&email="  +    
       TextBox2.Text;  
     Response.Redirect(url);  
    }  
    4、新建一个目标页面命名为webform2  
    5、在webform2中放置两个Label1,Label2  
    在webform2的Page_Load中添加如下代码:  
    private  void  Page_Load  
    (object  sender,  System.EventArgs  e)  
    {  
     Label1.Text=Request.QueryString["name"];  
     Label2.Text=Request.QueryString["email"];  
    }  
    运行,即可看到传递后的结果了。  
     
    二、使用Session变量  
     
    使用Session变量传值是一种最常见的方式了,此中方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值removed后,变量才会消失。举个例子看看:  
    1、创建一个web  form  
    2、在新建的web  form中放置一个button1,在放置两个TextBox1,TextBox2    
    3、为button按钮创建click事件  
    代码如下:  
    private  void  Button1_Click  
    (object  sender,  System.EventArgs  e)  
    {  
                   Session["name"]=TextBox1.Text;  
     Session["email"]=TextBox2.Text;  
     Response.Redirect("webform2.aspx");  
    }  
    4、新建一个目标页面命名为webform2  
    5、在webform2中放置两个Label1,Label2  
    在webform2的Page_Load中添加如下代码:  
    private  void  Page_Load  
    (object  sender,  System.EventArgs  e)  
    {  
     Label1.Text=Session["name"].ToString();  
     Label2.Text=Session["email"].ToString();  
     Session.Remove("name");  
     Session.Remove("email");  
    }  
    运行,即可看到传递后的结果了。  
     
    三、使用Server.Transfer  
    虽然这种方法有点复杂,但也不失为一种在页面传值的方式。  
    举个例子看看:  
    1、创建一个web  form  
    2、在新建的web  form中放置一个button1,在放置两个TextBox1,TextBox2    
    3、为button按钮创建click事件  
    代码如下:  
    private  void  Button1_Click  
    (object  sender,  System.EventArgs  e)  
    {  
     Server.Transfer("webform2.aspx");  
    }  
    4、创建过程来返回TextBox1,TextBox2控件的值代码如下:  
    public  string  Name  
    {  
     get  
     {  
       return  TextBox1.Text;  
     }  
    }  
     
    public  string  EMail  
    {  
     get  
     {  
       return  TextBox2.Text;  
     }  
    }  
    5、新建一个目标页面命名为webform2  
    6、在webform2中放置两个Label1,Label2  
    在webform2的Page_Load中添加如下代码:  
    private  void  Page_Load  
    (object  sender,  System.EventArgs  e)  
    {  
     //创建原始窗体的实例  
     WebForm1  wf1;  
     //获得实例化的句柄  
     wf1=(WebForm1)Context.Handler;  
     Label1.Text=wf1.Name;  
     Label2.Text=wf1.EMail;  
     
    }  
      

  3.   

    switch 中用return textbox1.text;不用break;忘了你要返回值的!哈哈
      

  4.   

    huangguolinc(来了) 
    有道理.楼主提问有问题,让人不是很清楚.
    若是仅仅根据下拉表来获取文本框的值,需要在页面间传值吗?最好把问题说清楚了.
      

  5.   

    据SelectedValue的值就显示几个文本框,要显示哪几个文本框???楼主没说清楚!!!!比如选择了6那显示哪六个文本框呢????郁闷!!!!
      

  6.   

    尽量少用Session 用URL传参数
    Session占内存,也不太利于程序员配合,因为它是页面之间共享变量