2010-06-09 44 views
1

我想將從SqlDataSource的Select命令返回的「DisplayName」列值傳遞給自定義函數,然後將返回值分配給DropDownList的「DataTextField」屬性。關注實現自定義ExpressionBuilder

我知道,我可以做到這一點使用「CustomExpressionBuilder」,我都試過,但如果我使用下列內容:

DataTextField="<%$ MyCustomExpressionBuilder:DisplayName %>" 

我沒有收到在被覆蓋的「GetCodeExpression」方法的顯示名稱字段的值,但文字值「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> 

回答

1

我不認爲你將能夠實現這種方式;我想你將不得不可編程地將元素添加到下拉菜單中。

可能是錯誤的,但設計師綁定方法在這方面的能力有限;您不能根據數據值更改數據文本字段。

+0

是的Brian,你是對的,謝謝!我分析過我不能使用ExpressionBuilder,因爲它仍然會返回一個表達式,它將被DropDownList的DataTextField屬性作爲列名。我更改了代碼以更改DropDownList的OnDataBound事件上的值。 – teenup 2010-06-09 18:27:08