0
我有一个gridview从sqldatasource和我点击编辑时,我想添加一个下拉列表,而不是一个文本框的数据。asp.net gridview更新与下拉列表
<asp:TemplateField HeaderText="Priority" SortExpression="Priority">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server"
DataTextField='<%# Bind("Priority") %>'
DataValueField='<%# Bind("Priority") %>'
DataSource='<%# Bind("Priority") %>' >
<asp:ListItem>1:High</asp:ListItem>
<asp:ListItem>2:Medium</asp:ListItem>
<asp:ListItem>3:Low</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblPriority" runat="server" Text='<%# Bind("Priority") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
我不断收到类似的错误:
数据绑定的下拉列表的值必须为以下(而不是从DB拉)
这里是gridview的模板码预设:'System.Char'不包含名称为'3:Low'的属性。
任何人都可以从上面看到原因是什么?
优先级是在Db中的varchar(10),这可能是原因吗?它不应该把它作为一个字符串吗? – 2013-03-15 09:08:59
我不这么认为。这个领域有什么独特的价值? – w0051977 2013-03-15 09:19:21
数据库优先级字段具有以下三种之一:1:高,2:中或3:低。我已经通过添加第二个查找表来获得它,通过添加具有三个优先级和每个ID的ID,然后在主表中我拥有Priority_ID而不是Priority。它更新得很好,但它现在显示的ID不是我想要的。我知道要显示它,我需要:'从CERecord中选择Priority_Type,其中Priority_ID = Priority和ID = 1的CEPriority,但是如何将它绑定到单个标签? – 2013-03-15 09:27:44