从db中设置两个值到下拉列表

本文关键字:两个 下拉列表 db 设置 | 更新日期: 2023-09-27 18:08:50

我在detailsview中有一个下拉列表。现在我使用DataTextField来显示文本,但现在我想再添加一个文本值。

我的aspx

:

<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataKeyNames="nFuturesId"
                            DataSourceID="FutureCommodityODS" DefaultMode="Insert" OnItemInserting="DetailsView1_ItemInserting"
                            SkinID="detailsviewSkin" OnItemInserted="DetailsView1_ItemInserted">
    <Fields>
        <asp:TemplateField HeaderText="Future" SortExpression="strFutureName">
                <InsertItemTemplate>
                        <BrummerComp:SortableDropDownList ID="DropDownListFuturesInsert" runat="server" DataSourceID="FutureNameODS"
                                        DataTextField="strFutureName" DataValueField="nFuturesId" SkinID="BCdropdownlistSkin">
                        </BrummerComp:SortableDropDownList>
                </InsertItemTemplate>
        </asp:TemplateField>
    </Fields>               
</asp:DetailsView>

我还有一个列,我想添加到DataTextField名为strFutureShortName。我希望它是这样的:

DataTextField="strFutureName, strFutureShortName"

我的想法是,我可以得到下拉列表在我的Page_Load和尝试从那里添加值:

if (!IsPostBack) {
        DropDownList ddl = (DropDownList)DetailsView1.FindControl("DropDownListFuturesInsert");
        ddl.DataTextField = "strFutureName"; //Here I would like "strFutureName" + "strFutureShortName"
    }

但这段代码不工作(当我已经删除属性DataTextField .aspx)。

有人知道我怎么能做到这一点吗?

编辑:

我想我找到了DDL被绑定的地方,它使用了这样的表映射:

global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping();
tableMapping.ColumnMappings.Add("strFutureName", "strFutureName");

从db中设置两个值到下拉列表

文本字段中不能直接添加多个值。你必须为你的实体创建一个单独的属性,然后将其作为日期文本字段添加。

例如

。让我们取person class

public class Person
{
    public int PersonId {get;set;}
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string FullName 
    {
        get
        {
            return string.Format("{0},{1}", FirstName, LastName);
        }
    }
}

现在您需要将FullName设置为数据源。

<BrummerComp:SortableDropDownList ID="DropDownListFuturesInsert" runat="server"    DataSourceID="FutureNameODS"
                                    DataTextField="FullName" DataValueField="PersonId" SkinID="BCdropdownlistSkin">
                    </BrummerComp:SortableDropDownList>