Asp.net 关于实现自定义ExpressionBuilder

Asp.net 关于实现自定义ExpressionBuilder,asp.net,Asp.net,我想将从SqlDataSource的Select命令返回的“DisplayName”列值传递给自定义函数,然后将返回值分配给DropDownList的“DataTextField”属性 我知道,我可以使用“CustomExpressionBuilder”来实现这一点,我已经尝试过,但如果我使用以下方法: DataTextField="<%$ MyCustomExpressionBuilder:DisplayName %>" DataTextField=“” 在重写的“GetCo

我想将从SqlDataSource的Select命令返回的“DisplayName”列值传递给自定义函数,然后将返回值分配给DropDownList的“DataTextField”属性

我知道,我可以使用“CustomExpressionBuilder”来实现这一点,我已经尝试过,但如果我使用以下方法:

DataTextField="<%$ MyCustomExpressionBuilder:DisplayName %>" 
DataTextField=“”
在重写的“GetCodeExpression”方法中,我没有收到DisplayName字段的值,而是收到文本值“DisplayName”

我该怎么做?请帮帮我

<asp:DropDownList ID="drpCourseType" runat="server" DataSourceID="sqldsCourses" 
                                                 DataTextField="DisplayName" DataValueField="Type" CssClass="FilterDropdown">
                                                </asp:DropDownList>
                                                <asp:SqlDataSource runat="server" ID="sqldsCourses"
                                                SelectCommand="SELECT Type,DisplayName FROM CourseTypes ORDER BY OrderID"
                                                 ConnectionString="<%$ ConnectionStrings:connectionString %>"></asp:SqlDataSource>

我认为你不可能通过这种方式实现它;我认为您必须通过编程将这些元素添加到下拉列表中


可能是错误的,但设计器绑定方法在这方面的功能有限;您不能根据数据值更改数据文本字段。

我认为您无法通过这种方式实现它;我认为您必须通过编程将这些元素添加到下拉列表中


可能是错误的,但设计器绑定方法在这方面的功能有限;您不能根据数据值更改数据文本字段。

是的,布莱恩,您说得对,谢谢!!我已经分析过,我不能使用ExpressionBuilder,因为它仍然会返回一个表达式,该表达式将被DropDownList的DataTextField属性作为列名。我已经更改了代码来更改DropDownList的OnDataBound事件的值。是的,Brian,你说得对,谢谢!!我已经分析过,我不能使用ExpressionBuilder,因为它仍然会返回一个表达式,该表达式将被DropDownList的DataTextField属性作为列名。我更改了代码以更改DropDownList的OnDataBound事件的值。