9.19号总结——验证dropdownlist的方法

 在网上找不到我想要验证dropdownlist的方法,

<asp:comparevalidator id="checkpwd" runat="server" Display="Dynamic" ControlToValidate="workClass" Type="String" ValueToCompare="父级分类" Operator="NotEqual" ErrorMessage="请选择类别" ></asp:comparevalidator>


ControlToValidate = 要验证的dropdownlist
Type = 要验证的字符类型 (我的这里是验证字符串)
ValueToCompare = 要验证的字符串的值
Operator="NotEqual" 不等于


现在我要验证的就是dropdownlist选择的值不等于  父级分类  否则提示:请选择类别

这个方法唯一的不好就是只能验证dropdownlist.selectedItem.value 不能对selectedItem.text 进行验证

 

 

网络方法:

 

 

源代码:

protected void Page_Load(object sender, EventArgs e)
            {      
                SqlConnection conn = Database.connection();
                conn.Open();
                string strType = "Select * From Type";
                SqlDataAdapter sdr1 = new SqlDataAdapter(strType,conn);
                DataSet ds = new DataSet();
                sdr1.Fill(ds,"Type");
                DataRow Dr = ds.Tables["Type"].NewRow();
                Dr[0] = "0";
                Dr[1] = "请选择一个类别";     
                ds.Tables["Type"].Rows.InsertAt(Dr, 0);     
                this.DropDownList1.DataSource = ds.Tables["Type"].DefaultView;
                this.DropDownList1.DataValueField = ds.Tables["Type"].Columns[0].ToString();
                this.DropDownList1.DataTextField = ds.Tables["Type"].Columns[1].ToString();
                this.DropDownList1.DataBind();
                conn.Close();
            }

意欲:从数据库中读取Type值,将其绑定到DropDownList,在提交表单时,将DropDownList的Value值插入另一数据库,该Value值在这数据库中为外键。在实际的调试中,改变DropDownList,并没有改变Value的值,始终是按类别ID为1插入。新的要求要该项必选,默认为“请选择一个类别”,将该值加入DataSet后再绑定DropDownList,同时用RequiredFieldValidator,InitialValue="请选择一个类别"验证。在没选类别以默认“请选择一个类别”提交,验证得不到触发,插入中还是错误,信息为:

INSERT 语句与 FOREIGN KEY 约束"FK_Photo_Type"冲突。该冲突发生于数据库"52llb",表"dbo.Type", column 'Type_Id'。
语句已终止。

解决方案:
<asp:comparevalidator id="checkpwd" runat="server" Display="Dynamic" ControlToValidate="DropDownList1" Type="String"    ValueToCompare="0" Operator="NotEqual" ErrorMessage="图片必须有一个编目" ></asp:comparevalidator>

ControlToValidate = 要验证的dropdownlist
Type = 要验证的字符类型 (我的这里是验证字符串)
ValueToCompare = 要验证的字符串的值 //这里的0表示请选择一个类别的值
Operator="NotEqual" 不等于

现在我要验证的就是dropdownlist选择的值不等于“请选择一个类别”,否则提示:图片必须有一个编目这个方法唯一的不好就是只能验证DropDownList.SelectedValue 不能对SelectedItem.Text 进行验证!

备注:ASP.Net2.0书籍中发现,DropDownList在新增加的两个属性中,其中一个为AppendDataBoundItems,将其属性值设为“True”,可使动态绑定的数据项追加到静态声明的列表项上。从而取代以上代码中的红色代码部分。

       在asp.net 2.0中,新增了一个AppendDataBoundItems属性,十分方便,使可以在执行数据绑定之前将项添加到 listcontrol 对象中。执行数据绑定之后,项集合中包含数据源中的项以及以前添加的项。如果不在绑定数据之前清除列表项,则为 true;如果在执行数据绑定之前清除项集合,则为 false。默认为 false。
比如

<asp:DropDownList ID="DropDownList1" AppendDataBoundItems="true" runat="server" DataSourceID="SqlDataSource1" DataTextField="state" DataValueField="state">
<asp:ListItem Text="(Select a State)" Value="" />
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:pubsConnectionString %>"
SelectCommand="SELECT DISTINCT [state] FROM [authors]">
</asp:SqlDataSource>

       则为dropdownlist的第一项增加了一个要求用户选择的提示的信息,而在与sqldatasource或其他数据源绑定后,其不会消失

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值