2012-02-23 2 views
0

У меня возникают проблемы с DropDownList в GridView, который отправляет значение NULL, когда на самом деле это значение выбирается из списка при использовании встроенного редактирования.ASP.NET GridView DropDownList Posts Пустое значение

Проблема заключается в том, что я не могу использовать этот метод, чтобы связать значение в UpdateCommand в моем SqlDataSource:

SelectedValue = '<% # Bind ("Value")%>'

Причина этого заключается в том, что значение может не существовать в списке, поэтому оно генерирует исключение.

Есть ли способ привязать значение к UpdateCommand без использования SelectedValue?

Спасибо в продвижении.

ответ

0

Вы можете использовать RowDataBound для установки SelectedValue;

в .cs файл

protected void Grid_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    GridView grid = (GridView)sender; 
    DropDownList DropDownList1 = (e.Row.FindControl("DropDownList1") as DropDownList); 
    HiddenField HiddenField1 = (e.Row.FindControl("HiddenField1") as HiddenField); 
    DropDownList1.SelectedValue = HiddenField1.Value; 

} 

в файле .aspx;

<Columns> 

... 

       <asp:TemplateField HeaderText="Column Name"> 
        <ItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text='<%# Bind("Value") %>'></asp:Label> 
        </ItemTemplate> 
        <EditItemTemplate> 
         <asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Bind("Value") %>'></asp:HiddenField> 
         <asp:DropDownList ID="DropDownList1" runat="server"> 
       ... 
         </asp:DropDownList> 
        </EditItemTemplate> 
       </asp:TemplateField> 
    </Columns> 
Смежные вопросы