2013-04-15 142 views
0

我想從後面的代碼訪問下拉列表中的值,但我得到此錯誤:「ddl_Ext在當前上下文中不存在」。我不知道我在這裏做錯了什麼。有人可以幫忙嗎?這是我在aspx文件中的下拉列表。謝謝。如何添加下拉列表detailview asp.net

<asp:TemplateField HeaderText="Is this external?"> 
     <ItemTemplate> 
     <asp:Label ID="lblExt" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Ext") %>'></asp:Label> 
      </ItemTemplate> 
      <EditItemTemplate> 
      <asp:DropDownList ID="ddl_Ext" runat="server" 
       AutoPostBack="false" AppendDataBoundItems="true"> 
      <asp:ListItem Text="Please select ..." Value="Please Select ..."></asp:ListItem> 
      <asp:ListItem Text="Yes" Value="Yes"></asp:ListItem> 
      <asp:ListItem Text="No" Value="No"></asp:ListItem> 

      </asp:DropDownList> 
      </EditItemTemplate> 
    </asp:TemplateField> 

這裏是後面我將嘗試使用代碼:

protected void DV_WScript_ItemInserting(object sender, DetailsViewInsertEventArgs e) 
    { 
     string Ext = ddl_Ext.SelectedValue; 
    } 
+0

從代碼隱藏你在哪裏嘗試訪問它? –

+0

您需要找到控件並將其轉換爲'DropDownList dropDown =(DropDownList)DetailsView1.FindControl(「ddlName」);' –

+0

這是因爲它位於'TemplateField'的EditItemTemplate中。你需要通過'Rows [{index}]。FindControl(「ddl_Ext」)'來訪問它。 –

回答

2

試試這個:

protected void DV_WScript_ItemInserting(object sender, DetailsViewInsertEventArgs e) 
{ 
     //Put here if you want to find control of your Insert Mode 
      DropDownList dropDown = (DropDownList)DetailsView1.FindControl("ddl_Ext"); 
      string Ext = dropDown.selectedValue; 

}