문제

로그인 userID를 기반으로 기본값을 설정하고 표시하려는 드롭 다운 목록 (FK)이 있습니다. 어떻게하는지 말해 줄 수 있습니까? GridView 위의 상단에 나타나는 드롭 다운 필터에만 영향을 미치고 싶습니다.

감사

니코스

도움이 되었습니까?

해결책

필터 기준 섹션에 나타나는 드롭 다운 목록 에서이 기능 만 원한다면 필터링하려는 쿼리 스트링 매개 변수를 추가하여 URL을 수정하십시오. DynamicFilter는 쿼리 스트링에서 값을 선택하고 그에 따라 드롭 다운 목록을 설정합니다. (FYI. 이것은 외국 Key.ASCX FieldTemPlate과 동일한 기능입니다)

실제로이 URL을 만들 수있는 더 나은 방법이 있다면 좋을 것입니다 (문자열을 사용하는 대신). 현재 제가 제공하는 솔루션은 아마도 후속 버전으로 나눌 것입니다.

예제 (page_load)

Response.Redirect("~/Employees/List.aspx?ReportsTo=1234");

다른 팁

이것은 보편적 인 변화입니까, 아니면 하나의 외국의 주요 관계입니까?

하나의 외국의 주요 관계에 대한 것이라고 가정하면, 해당 관계에만 사용될 새로운 FieldTemplate을 만들 수 있습니다. 새로운 FieldTemplate은 기본 "OutiseKey"FieldTemplate의 사본입니다. 새로운 FieldTemplate에서는 ondatabinding (또는 page_prerender) 이벤트를 수정하여 DropdownList의 "기본값"을 설정합니다.

그런 다음 새로운 FieldTemplate을 해당 관계에 사용하도록하려면 System.componentModel.DataAnnotations를 사용해야합니다.uihint 해당 외국의 주요 관계를 나타내는 엔티티 클래스 구성원의 속성. (아래 링크)

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.uihintattribute.uihint.aspx또는 http://www.asp.net/learn/3.5-p1/video-291.aspx (약 07:30 분)

약간의 도움을 얻으려면 CodePlex의 DynamicData Futures 릴리스를 살펴볼 수 있습니다. 특히 "필터의 값이있는 템플릿 인구 삽입물"섹션. http://www.codeplex.com/aspnet/release/projectreleases.aspx?releaseid=14475

나는 해결 방법을 알아 냈지만 더 우아한 솔루션에 열려 있습니다.

populatelistControl (dropdownlist1) 후 page_init에 다음 줄을 삽입하여 FilteruserControl.ascx.cs를 편집했습니다.

dropdownList1.SelectedIndex = DropdownList1.Items.IndExof (DropDownList1.Items.FindByText ( "bob")); // 사용자 이름은 테스트 만 하드 코딩됩니다

이것은 작동하는 것처럼 보이지만 가능한 경우이를 해결하기 위해 Metadata와 함께 사용자 정의 부분 엔티티 클래스를 사용하는 것을 선호합니다.

나는 당신의 삽입보기 템플릿 코드에서 다음과 같이 작업중인 응용 프로그램에서 이것을 해결했습니다.

       foreach (DetailsViewRow row in DetailsView1.Rows)
        {
            foreach (Control ctl in row.Controls)
                foreach (Control c in ctl.Controls)
                    foreach (Control x in c.Controls)
                    {
                        if (x.ClientID.Contains("tblName"))
                        {
                            foreach (Control y in x.Controls)
                            {
                                if (y.ClientID.Contains("DropDownList"))
                                {
                                    ddl = y as DropDownList;
                                    ddl.SelectedValue = Convert.ToString(UserId);
                                    ddl.Enabled = false;
                                }
                            }
                        }
                    }
        }

이 코드를 사용하면 사용자가 로그인하고 일부 엔티티 (tblname)를 삽입하면 드롭 다운 목록 (FK to UserID)이 이미 선택되고 비활성화되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top