问个技术问题:我设计了一个页面,其中有一个下拉列表,里面是药品类型,分为国产,进口等
选择下拉列表的不同选项
对应显示不同的输入项,每个对应的输入项都是必填的。
怎么分别对他们验证我现在把各选项对应的输入项都绑定了验证控件,每次验证都会全部要验证,我只需要验证所选选项对应的输入项即可。
谢谢!我用的下拉列表是客户端控件,怎样在cs代码里找到对应的值。

解决方案 »

  1.   

    request.Form[string id].ToString()
    id 为控件的id,不一定是服务端控件,但要有ID,就可以获值
      

  2.   

    不好意思,搞错了,是客户端的name属性,不是id
    request.Form[string name].ToString()
      

  3.   

    谢谢,貌似id也可以,我想从数据库查询出内容,然后让select列表的对应option自动选中怎么写啊
      

  4.   

    我的id 和 name 起的是一样的,不知道那个起的作用 呵呵
      

  5.   

    我查的资料是 设置select中value为objitemvalue的item为选中,则用document.all.objselect.value = objitemvalue;我使用
    Response.Write("<script language='javascript'>document.all.selDrugType.value = " + valueWantBeBound+ "</script>");
    其中selDrugType是下拉列表id和name,valueWantBeBound是个string类型。
    对于验证 我在代码中判断下拉列表选中项 动态加入ValidationGroup中,却不起作用,晕了
    代码如下:
    if (Request.Form["selDrugType"].ToString() == "国产药品")
            {
                rfv1.ValidationGroup = "goods";
            }
    rfv1是验证控件id,goods是验证组名。能帮着分析下吗
    多谢了!
      

  6.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <select id="药品类型" name="药品类型">
            <option >国产</option>
            <option >进口</option>
        </select>
        <asp:Button ID ="Button1" Text ="Button1" runat="server"/>
        </div>
        <asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
            ErrorMessage="国产" ControlToValidate="TextBox1" ValidationGroup="国产"></asp:RequiredFieldValidator>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
            ErrorMessage="进口" ControlToValidate="TextBox1" ValidationGroup="进口"></asp:RequiredFieldValidator>
        </form>
    </body>
    </html>using System;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            ClientScript.RegisterStartupScript(this.GetType(), String.Empty, "<script>document.getElementById('药品类型').selectedIndex=1;</script>");
            Button1.ValidationGroup = "进口";
        }
    }
      

  7.   

    呵呵 明白了 ClientScript.RegisterStartupScript绑定了对应的项,但是现在下拉列表此项对应应该显示的内容没有跟着显示出来。怎么搞function showDrugTypeBind(va)
              {
                if(va=="国产药品")   
                {     
                    divGuojia.style.display='';     
                    divJinkou.style.display='none';
                    divGangAoT.style.display='none';
                }   
                if(va=="进口药品")   
                {     
                    divGuojia.style.display='none';     
                    divJinkou.style.display='';
                    divGangAoT.style.display='none';   
                }   
                if(va=="港澳台药品")   
                {     
                    divGuojia.style.display='none';     
                    divJinkou.style.display='none';
                    divGangAoT.style.display='';   
                }   
              }<select id="selDrugType" name="selDrugType"  ondatabinding="javascript:showDrugTypeBind(this.value);">
                                        <option value="国产药品">国产药品</option>
                                        <option value="进口药品">进口药品</option>
                                        <option value="港澳台药品">港澳台药品</option>
                                    </select>[
      

  8.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>无标题页</title>
        <script type ="text/javascript" src ="JScript.js" />
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <select id="药品类型" name="药品类型" onchange="SelectChange()">
            <option >国产</option>
            <option >进口</option>
        </select>
        <asp:Button ID ="Button1" Text ="Button1" runat="server"/>
        </div>
        <asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
            ErrorMessage="国产" ControlToValidate="TextBox1" ValidationGroup="国产"></asp:RequiredFieldValidator>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
            ErrorMessage="进口" ControlToValidate="TextBox1" ValidationGroup="进口"></asp:RequiredFieldValidator>
            <div id="div国产" style =" display :none ">div国产</div>
            <div id="div进口" style =" display :none ">div进口</div>
        </form>
    </body>
    </html>JScript.js:
    function SelectChange()
    {
        switch (document.getElementById('药品类型').selectedIndex)
        {
            case 0:
                div国产.style.display =""; 
                div进口.style.display ="none"; 
                break ;
            case 1:
                div国产.style.display ="none"; 
                div进口.style.display =""; 
                break ;
        }
    }using System;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            ClientScript.RegisterStartupScript(this.GetType(), String.Empty, "<script>document.getElementById('药品类型').selectedIndex=1;SelectChange();</script>");
            Button1.ValidationGroup = "进口";
        }
    }
      

  9.   

    遇到这样的问题可以自己测试,理解起来就更好,是name的属性起作用