Ошибка привязки данных в раскрывающемся списке

У меня есть Dropdwon на моей странице aspx:

    <td>
    <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextFormatString = "{0} - {1}" DataTextField = "value1,value2" DataValueField="Value2" class="ctrDropDown" onBlur="this.className='ctrDropDown';" onMouseDown="this.className='ctrDropDownClick';" onChange="this.className='ctrDropDown';">
     </asp:DropDownList>
     <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                                        ConnectionString="<%$ ConnectionStrings:XXXX_DevConnectionString_ddl %>" 
                                        SelectCommand="SELECT ParamId, ParamType, Value1, Value2, Value3, Status FROM Parameter WHERE (ParamType = 'BankId')">
 </asp:SqlDataSource>
</td>

Я хочу, чтобы текстовое поле данных отображалось в значении1-значение2, я делаю DataTextFormatString = "{0} - {1}" DataTextField = "value1,value2", но это дает мне ошибку:

Exception Details: System.Web.HttpException: DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'value1,value2'.

это мой код неправильный? или я что-то пропустил?


person Sabilv    schedule 04.06.2013    source источник


Ответы (1)


Решение довольно простое: выполните вычисление в своем SQL (в новом имени столбца), а затем используйте новое имя столбца в качестве своего DataTextField.

Например, добавьте новое поле «Результат»:

SelectCommand="SELECT ParamId, ParamType, Value1, Value2, Value3, Status, Value1 - Value2 As Result FROM Parameter WHERE (ParamType = 'BankId')">

а затем сослаться на это в DataTextField:

DataTextField = "result"
person competent_tech    schedule 04.06.2013