문제

3 개의 웹 파트를 사용하고 있습니다.WebPart A는 사용자가 WebPart A에서 버튼을 클릭 할 때 값을 만듭니다. WebPart B이 값을 사용하여 사용자가 선택할 수있는 항목이있는 목록을 만듭니다.WebPart C는 두 값을 모두 사용하여 테스트 목적으로 문자열을 만듭니다.

WebPart B이 목록을 사용하여 DropDownBox를 채 웁니다.SelectedValue가 변경 될 때마다 WebPart C를 업데이트해야합니다. 이것은 컨트롤의 선언입니다.

_documentTypeList = new DropDownList();
_documentTypeList.AutoPostBack = true;
this.Controls.Add(_documentTypeList);
.

여기서는 문제가 를 사용하는 것입니다.

_documentTypeList.AutoPostBack = true;
.

완전한 페이지를 다시로드하고 WebPart A의 값을 null로 재설정합니다.WebPart A의 가치를 잃지 않고 WebPart C에 WebPart C에 새 값을 보내는 방법은 무엇입니까?이 모든 것은 1 페이지에서 발생합니다.

도움이 되었습니까?

해결책

세션 저장 상태 변수를 사용하여 수행 할 수 있습니다.

    public string Name
    {
        get
        {
            return Page.Session["SaveName"] as string;
        }
        set
        {
            Page.Session["SaveName"] = value;
        }
    }
.

이것은 세션 상태에서 저장 / 가져 오는 getter / setter

이를 사용하려면 다음을 수행하십시오.

이것은 세션 상태의 값을 가져옵니다 (SESORE 상태 변수를 보려면 onPRerender 이벤트가 필요합니다)

txtName.Text = Name;
.

이 세션 상태로 설정 (세션 상태에 저장할 위치가 될 수 있음)

Name = txtName.Text;
.

int valuse :

cahnge public string Name to public int Name 및 bool 값 ect와 같은 다른 항목에 대해서도됩니다.

int : 에 대해이 것처럼 보입니다.

    public int Name
    {
        get
        {
            return Page.Session["SaveName"] as int;
        }
        set
        {
            Page.Session["SaveName"] = value;
        }
    }
.

다른 사람들이 WebPart간에 전달 될 데이터에 대해 언급했듯이 Iinterface 메소드를 사용해야합니다.

웹 파트 간의 연결 인 데이터 (해당 데이터를 사용하는 WebPart를 사용하는 WebPart를 사용하는 WebPart) 소비자 (WebPart 전송)를 제공합니다.

위의 것은 100 % 작업을 수행하고 포스트 백에 대한 값을 저장합니다.)

만 필요로합니다.) IV는 아래의 연결에 대한 몇 가지 링크를 게시했습니다.

연결 가능한 WebPart 문제 .................. ....?

2 웹 파트 간의 연결

도움이되기를 바랍니다 :)

다른 팁

if (!Page.IsPostBack) { your code here }를 시도 했습니까?

사용자 정의 웹 파트 연결을 목적으로 만들었습니까?귀하의 요구 사항을 거치는 것은 가장 적절한 옵션이 될 수 있습니다

이전에 다음 순서로 연결된 웹 파트입니다.

WebPart A => WebPart B
WebPart B => WebPart C
WebPart A => WebPart C
.

WebPart B에서 값을 변경했을 때 WebPart C에서 두 값을 모두 호출하고 싶으면 오류가 발생했습니다. 언제든지 페이지를 다시로드하고 WebPart A를 다시로드해야합니다. 페이지 상호 작용 및 페이지로드가 아닌 값이 생성되는 값은 손실되었습니다. WebPart B 및 WebPart C는 WebPart A의 가치없이 기능을 압류했습니다. 위에서 설명한대로 WebPart 연결을 유지하려면 거의 SharePointMaster의 답변을 확인하십시오.

My Case WebPart A는 고유 한 로그인 토큰을 생성하기 때문에 오히려 페이지에 저장하지 않을 것입니다. 나는 웹 파트를 가지고있는 것을 선호하는 것을 선호합니다. 그렇게하려면 나는 그들 사이의 연결을 바꿨다. 대신 위의 연결은 다음과 같은 연결을 사용했습니다.

WebPart A => WebPart B => WebPart C
.

WebPart B는 WebPart A의 값을 저장하고 자신의 가치와 함께 WebPart C로 제공합니다. 이것은 WebParts B 인터페이스가 현재 어떻게 보이는지입니다.

public interface IWebPartB
{
    string webPartAValue { get; }
    string webPartBValue { get; }
}
.

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