2012-11-12 3 views
2

db에서 채워지는 두 개의 dropdownlists가있는 gridview가 있습니다. 하나는 설명적인 이름이고 다른 하나는 축약 된 이름입니다. 다음을 수행해야합니다.C# dropdownlist selectedindexed in gridview set 두 번째 드롭 다운 목록의 selectedindex

DDL1에서 항목을 선택할 때 일치하도록 DDL2의 선택된 색인을 변경해야하며 반대의 경우도 마찬가지입니다.

여기에 검색 및 기능은 다음 발견 : 나는 작업을 찾는 시도

Unable to cast object of type 'System.Web.UI.WebControls.DataGridItem' to type 'System.Web.UI.WebControls.GridViewRow'. 

: 그것은 "행"에 대한 할당에 도달 할 때

protected void ddlAddLabTest_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DropDownList ddlLabTest = (DropDownList)sender; 
    GridViewRow row = (GridViewRow)ddlLabTest.NamingContainer; 
    DropDownList ddlAddLabTestShortName = (DropDownList)row.FindControl("ddlAddShortname"); 

    ddlAddLabTestShortName.SelectedIndex = intSelectedIndex; 
} 

을 만 나는 다음을받을 예를 들어 볼 수는 없습니다. 어떤 도움이라도 대단히 감사합니다!

+0

당신이 자바 스크립트 솔루션를 시도하거나 다시 게시해야합니까 시도? DDL이 항상 서로 같으면 왜 둘 다 필요합니까? – MikeSmithDev

답변

6

protected void ddlAddLabTest_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DropDownList ddlLabTest = (DropDownList)sender; 
    DataGridItem row = (DataGridItem) ddlLabTest.NamingContainer; 
    DropDownList ddlAddLabTestShortName = (DropDownList)row.FindControl("ddlAddShortname"); 

    ddlAddLabTestShortName.SelectedIndex = intSelectedIndex; 
} 
+0

빙고! 승자. – NJohns

+0

고마워요! _DataGridItem_ 대신 _GridViewRow_를 사용해야했습니다. 그러나 효과적이었습니다! :) – divinediu

1

NamingContainer처럼 보이지 않으므로 그대로 두십시오. 이미 FindControl 메소드가 있습니다.

var row = ddlLabTest.NamingContainer; 
+0

시도 : "암시 적으로 'System.Web.UI.Controls'형식을 'System.Web.UI.WebControls.GridViewRow'로 변환 할 수 없습니다. 명시 적 변환이 있습니다 (캐스트가 누락 되었습니까?)" – NJohns

+1

GridViewRow 형식을 제거하십시오. var를 사용하십시오. –

관련 문제