SelectedValue null в выпадающем списке, поэтому выбрасывается - PullRequest
0 голосов
/ 28 июля 2011

Это мой код в aspx:

 <EditItemTemplate>           
    <asp:DropDownList ID="DropDownList1" runat="server" 
         DataSourceID="SqlDataSource2" SelectedValue='<%#GetSYSACCID(Eval("SYSACCID"))%>'
         DataTextField="UserName" DataValueField="SYSACCID">
    </asp:DropDownList>
  </EditItemTemplate>

DropDownList находится внутри EditItemTemplate TemplateField в виде сетки. GetSYSACCID - это функция, определенная в aspx.cs. Проблема в том, что Eval("SYSACCID") равно нулю, GetSYSACCID возвращает ноль и возникает ошибка. Как я могу справиться с этим? Я знаю, это выглядит легко, но все же это причиняет мне боль.

Заранее спасибо:)

Ответы [ 2 ]

2 голосов
/ 28 июля 2011

Вы можете сделать что-то вроде ...

SelectedValue='<%# GetSYSACCID(Eval("SYSACCID") == null ? 0 : Eval("SYSACCID"))%>'

У вас есть значение по умолчанию для обработки нулевого значения. например,

<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource2" AppendDataBoundItems="true"
            SelectedValue='<%#GetSYSACCID(Eval("SYSACCID"))%>' DataTextField="UserName" DataValueField="SYSACCID" >
            <asp:ListItem Value="0" Text="---Select---"></asp:ListItem>
        </asp:DropDownList>
0 голосов
/ 28 июля 2011

Попробуйте это:

SelectedValue='<%# GetSYSACCID(Eval("SYSACCID")) ?? 0 %>'

или измените GetSYSACCID на return 0 при получении нулевого ввода.

...