2013-08-30 5 views
1

누락 값 ... 그리고 네 나는ASP.Net DropDownList로 선정 내가 답을 찾기 위해 노력한다는 말을 처음에는

나는 DropDownList로를 사용하는 ASP.Net 세계 : 새로운 싶습니다 해요 GridView의 EditItemTemplate 필드에 있습니다. 나는 SelectedValue parametr 설정할 수 없습니다 발견했다. 실종 됐어. 내가 뒤에 코드에서 설정하려고하면 ddlEditPermissions 존재하지 않는 것 같습니다.

<asp:TemplateField HeaderText="opravneni" SortExpression="opravneni"> 
<edititemtemplate> 
    <asp:DropDownList ID="ddlEditPermissions" runat="server" DataSource='<%# getPermissions() %>' OnPreRender="ddlEditPermissions_PreRender"/> 
</edititemtemplate> 
<insertitemtemplate> 
    <asp:TextBox ID="tbEditPermissions" runat="server" Text='<%# Bind("opravneni") %>'></asp:TextBox> 
</insertitemtemplate> 
<itemtemplate> 
    <asp:Label ID="lEditPermissions" runat="server" Text='<%# Bind("opravneni") %>'></asp:Label> 
</itemtemplate> 

은 정말 혼란 스러워요. 아무도 내게 조언 해 줄 수 있니?

당신은 그것을 구성하고 데이터 바인딩 된 후 모든 GridViewRow에 대해 트리거 가져옵니다 GridViewRowDataBound을 사용할 수 있습니다

답변

1

:

protected void gridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowState == DataControlRowState.Edit) 
    { 
     var ddlEditPermissions = (DropDownList)e.Row.FindControl("ddlEditPermissions"); 
     // bind DropDown manually 
     ddlEditPermissions.DataSource = getPermissions(); 
     ddlEditPermissions.DataTextField = "Permission_Name"; // presumed text-column 
     ddlEditPermissions.DataValueField = "Permission_ID"; // presumed id-column 
     ddlEditPermissions.DataBind(); 

     DataRowView dr = e.Row.DataItem as DataRowView; // you might need to change this type, use the debugger then to determine it 
     ddlEditPermissions.SelectedValue = dr["Permission_ID"].ToString(); // presumed foreign-key-column 
    } 
} 
+0

그것은 작동하지만, 확인 편집 후에는 예외가 발생합니다 :'컬럼에 NULL 값을 삽입 할 수 없습니다 ' OPRAVNENI_ID ', 테이블'HelpDeskDB.dbo.USERS '; 열이 널을 허용하지 않습니다. UPDATE가 실패합니다. 명세서가 종료되었습니다. '- 어떻게 그 열 값을 바인드 할 수 있습니까? –

+0

@ Jenda :이 질문에서 Databind 문제가 아니라 업데이트 문에 관한 것이므로 다른 질문 인 것 같습니다. 따라서 다른 질문을하고 관련 코드 (SQL 및 데이터베이스 스키마 포함)를 표시해야합니다. –

+0

좋습니다 ... 고맙습니다. 다른 질문을하겠습니다.) –