Listview下拉列表数据绑定在编辑模式下没有sqldatasource

时间:2011-10-28 06:11:40

标签: asp.net c#-3.0

我是Uday Satardekar,

在我的nridubai.com网站中,我正在使用Listview中的EditTemplate编辑活动信息。

我想要从所选国家/地区修改国家/地区。我没有使用sqlDataSource。

我从页面后面的代码填充国家/地区列表。为此,我使用了 OnItemDataBound 事件。这将显示编辑模式下的所有国家/地区。

这对我来说很好。

当我在editmode文本框中打开lisview时,事件名称显示来自数据库的eventname。

如果在编辑模式下加载国家/地区的首次下拉列表,则必须显示国家/地区属于事件。像TextBox控件。

我试试这个

 <asp:DropDownList ID="lstEditCountry" runat="server" 

                         selectedValue='<%# Eval("country_name") %>'
                              Width="174" />

但它有例外。

请帮帮我。举例..................

提前致谢.....

1 个答案:

答案 0 :(得分:4)

当行处于编辑模式时,您必须将lstEditCountry绑定到数据源。见here

protected void List_ItemDataBound(object sender, ListViewItemEventArgs e)
{

  //Verify there is an item being edited.
  if (List.EditIndex >= 0)
  {

    //Get the item object.
    ListViewDataItem dataItem = (ListViewDataItem)e.Item;

    // Check for an item in edit mode.
    if (dataItem.DisplayIndex == List.EditIndex)
    {

      // Preselect the DropDownList control with the Title value
      // for the current item.

      // Retrieve the underlying data item. In this example
      // the underlying data item is a DataRowView object.        
      DataRowView rowView = (DataRowView)dataItem.DataItem;

      // Retrieve the Title value for the current item. 
      String title = rowView["Title"].ToString();

      // Retrieve the DropDownList control from the current row. 
      DropDownList list = (DropDownList)dataItem.FindControl("lstEditCountry");

      //********populate the ddl here***********

      // Find the ListItem object in the DropDownList control with the 
      // title value and select the item.
      ListItem item = list.Items.FindByText(title);
      list.SelectedIndex = list.Items.IndexOf(item);

    }
  }
}