2012-06-07 4 views
2

그래서 일부 GridView가 있습니다. 행을 편집하면 특정 열이 레이블에서 DropDownList로 변경됩니다. 이 드롭 다운의 내용은 일부 SQL 데이터 소스를 통해 채워집니다. 사용자는 선택 사항을 선택하고 "업데이트"를 클릭 할 수 있습니다.업데이트에서 GridView 내의 드롭 다운에서 선택된 값 얻기

드롭 다운의 SelectedValue 속성에서 실제로 어떻게 가져올 수 있습니까?

<asp:GridView ... > 
     <Columns> 
      ... 
       <EditItemTemplate> 
        <asp:DropDownList ID="ServiceCategoriesGvDropDown" AutoPostBack="True" .../> 
       </EditItemTemplate> 
       <ItemTemplate> 
        <asp:Label ... /> 
       </ItemTemplate> 
      </asp:TemplateField> 
      ... 
     </Columns> 
    </asp:GridView> 

을 그리고 내의 SqlDataSource에서 ControlParameter와 함께 철사 :

나는이 일 것이라고 생각

시스템 :

<UpdateParameters> 
     ... 
     <asp:ControlParameter ControlID="ServiceCategoriesGvDropDown" PropertyName="SelectedValue" ... /> 
    </UpdateParameters> 

는 그러나, 나는 다음과 같은 예외를 얻을. InvalidOperationException : ControlParameter 'ServiceCategoriesID'에서 'ServiceCategoriesGvDropDown'컨트롤을 찾을 수 없습니다.

분명히 내 드롭 다운을 찾을 수 없습니다. 아마도이 시점까지 파괴되었을 것입니까? 나는 당신이 할 필요가 있다고 생각 무엇

답변

3

그리드의 업데이트 이벤트에서 이것을 시도 gridview1입니다.

protected void YourGrid_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    DropDownList ddl= (DropDownList)YourGrid.Rows[e.RowIndex].FindControl("ddlId"); 
    string selectedvalue=ddl.selectedvalue; 
    //Your update code goes here 
} 
0

은 다음과 같습니다

  1. Gridview
  2. 잡아 해당 이벤트에 SelectedValueDropDownlistSelectedIndexChange 이벤트를 연결합니다.
  3. DataSource의 UpdateParameters에 대한 참조를 가져 와서 해당 매개 변수를 프로그래밍 방식으로 SelectedValue으로 채 웁니다.
  4. 데이터 소스의 Update 메서드를 호출하십시오.
0

당신은이 일을 시도 할 수 있습니다 다음의 gridview의 ID를 가정

<asp:ControlParameter ControlID="gridview1$ServiceCategoriesGvDropDown" PropertyName="SelectedValue" /> 
관련 문제