设置DataValueField和DataTextField会显示错误

时间:2014-11-19 08:11:57

标签: c# asp.net linq-to-sql drop-down-menu

我想通过查看您将要查看的查询,通过从另一个下拉列表中选择_PropType中的值来填充_PropSubtype这是一个下拉列表。出现的问题是如何设置DataValueField和DataTextField(文本显示在下拉列表中)。到目前为止,我尝试的代码是:

protected void _PropType_SelectedIndexChanged(object sender, EventArgs e)
    {
      using (Property_dbDataContext context = new Property_dbDataContext())
        {
            var type = (from a in context.Property_subtypes
                        where a.main_type == _PropType.SelectedItem.ToString()
                        select new
                        {   
                            a.sr_no,
                            a.prop_subtype

                        }
        ).Distinct().ToList();

            _PropSubtype.DataSource = type;
            _PropSubtype.DataValueField = type[0].sr_no.ToString();
            _PropSubtype.DataTextField = type[1].prop_subtype.ToString();            
            _PropSubtype.DataBind();         
        }
}

现在我有一个保存按钮,它保存了两个下拉列表的Selected值,但是_PropSubtype再次出现问题,它可能存储文本而不是值,因为valuefield是sr_no。这是代码:

protected void save_Click1(object sender, EventArgs e)
    {
        using (Property_dbDataContext context = new Property_dbDataContext())
        {
            Property basic = new Property();
            basic.property_type = _PropType.SelectedValue;
            basic.property_subtype = _PropSubtype.SelectedIndex.ToString();
            basic.property_subtype = _PropSubtype.SelectedValue;

            context.Property.InsertOnSubmit(basic);
            context.SubmitChanges();
        }
    }

从_PropType中选择选项后返回的错误:

  

DataBinding: '<> f__AnonymousType0`2 [[System.Int32,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089],[System.String,mscorlib,   Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]'   不包含名称为' Industrial Land'。

的媒体资源      

说明:执行期间发生未处理的异常   当前的网络请求。请查看堆栈跟踪了解更多信息   有关错误的信息以及它在代码中的起源。

     

异常详细信息: System.Web.HttpException:DataBinding:   '<> f__AnonymousType0`2 [[System.Int32,mscorlib,Version = 4.0.0.0,   Culture = neutral,PublicKeyToken = b77a5c561934e089],[System.String,   mscorlib,版本= 4.0.0.0,文化=中性,   公钥= b77a5c561934e089]]'不包含属性   名称'工业用地'。

0 个答案:

没有答案