2011-05-22 149 views
0

3编辑时,在同一行中显示下拉列表。ASP.NET编辑GridView行

当1 dropdownlist有一个选择,其他2应该去索引0(空的)。我的代码

例子:

   <asp:TemplateField HeaderText="Project" SortExpression="Project"> 
        <ItemTemplate> 
         <%#Eval("Project") %> 
        </ItemTemplate> 
        <EditItemTemplate> 
         <asp:DropDownList ID="ProjectDropDownList" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ProjectDropDownList_Changed" AppendDataBoundItems="true" 
          DataSourceID="ProjectDataSource" DataTextField="navn" DataValueField="navn"> 
          <asp:ListItem>-- choose one --</asp:ListItem> 
         </asp:DropDownList> 
        </EditItemTemplate> 
       </asp:TemplateField> 

我的SelectionChanged,甚至处理:

protected void ProjektDropDownList_SelectionChanged(object sender, EventArgs e) 
     { 
      DropDownList project = (DropDownList) GridView1.Rows[GridView1.SelectedIndex].FindControl("ProjectDropDownList"); 
      DropDownList kunde = (DropDownList)GridView1.Rows[GridView1.SelectedIndex].FindControl("KundeDropDownList"); 
      DropDownList øvrige = (DropDownList)GridView1.Rows[GridView1.SelectedIndex].FindControl("ØvrigeDropDownList"); 

      if(project.SelectedIndex >= 0 && kunde != null && øvrige != null) { 
       kunde.SelectedIndex = 0; 
       øvrige.SelectedIndex = 0; 
      } 

     } 

我在尝试在同一行中获取其它控制器,一个空指针... 我该如何解决?

+0

空指针为哪个对象? – gbs 2011-05-22 13:46:02

+0

DropDownList的空指针我试图到达UpdatingEvent/EditingEvent的外部。 – KristianB 2011-05-22 15:28:38

回答

2

我不确定这是您正在查找的SelectedIndex。没有你应该使用的EditItemIndex吗?

+0

简单的工作!看起来像这样:'DropDownList project =(DropDownList)GridView1.Rows [GridView1.EditIndex] .FindControl(“ProjectDropDownList”);' – KristianB 2011-05-22 15:33:24