ASPxComboBox «указанное приведение неверно» при привязке данных - PullRequest
1 голос
/ 26 сентября 2011

У меня есть Dev Express ASPxComboBox:

<dx:ASPxComboBox runat="server" ID="DropDownListTemplates"
    DataSourceID="SqlDataSourceTemplates" ValueField="template_id" TextField="name" 
    ValueType="System.Int32" Enabled="false" Width="100%" SelectedIndex='<%# 
    Eval("subs_template") %>'/>

, который выдает «Указанная ошибка приведения не является допустимой» во время выполнения.Это как-то связано с выражением

SelectedIndex='<%# Eval("subs_template") %>'

, однако subs_template гарантированно будет числом:

<asp:SqlDataSource ID="SqlDataSourceClientDetail" runat="server"
        ConnectionString="<%$ code: AutoNat.ConnectionManager.AutoNatConnectionString %>"
        SelectCommand="SELECT *, isnull(subs_template_id, 0) subs_template FROM [person] p WHERE [person_id]=@person_id">
        <SelectParameters>
            <asp:SessionParameter Name="person_id" SessionField="personID" Type="Int32" />
        </SelectParameters>
    </asp:SqlDataSource>

    <asp:SqlDataSource ID="SqlDataSourceTemplates" runat="server" ConnectionString="<%$ code: AutoNat.ConnectionManager.AutoNatConnectionString %>"
       SelectCommand="SELECT * FROM 
                      (SELECT t.template_id, name FROM subs_template t UNION SELECT 0, 'Custom...') s 
                      ORDER BY template_id">
     </asp:SqlDataSource>

Почему это не помогает?

У меня естьпробовал

SelectedIndex='<%# 0 %>'

который отлично работает!

1 Ответ

1 голос
/ 26 сентября 2011

Вы пытались разыграть его как целое число?Convert.ToInt32(Eval("subs_template"))

...