2014-07-07 6 views
-2

웹 클라이언트를 사용하여 목록 상자가 채워지고 for 루프를 사용하여 json 응답에서 객체를 분리하여 사용합니다.C에서 이벤트 처리기 메서드에서 하나의 함수에서 다른 값을 전달하는 방법 #

void Downloadpage() 
{ 
    WebClient webclient = new WebClient(); 

    webclient.Headers["ContentType"] = "application/json"; 
    webclient.DownloadStringCompleted += wc_downloadStringCompleted; 
    webclient.DownloadStringAsync(new Uri("http://client.web.net/pages_wp.php"), UriKind.RelativeOrAbsolute);   
} 

public void wc_downloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
{ 
    string lreport = e.Result.ToString(); 
    string lnoHTMLs = Regex.Replace(lreport, @"<[^>]+>|&nbsp;|&zwnj;|&raquo;|&laquo;|&ldquo;|\\n|\\t|", "", RegexOptions.Multiline).Trim(); 
    string lnoHTMLNormaliseds = Regex.Replace(lnoHTMLs, @"\s{2,}", " "); 


    JArray res = JArray.Parse(lnoHTMLNormaliseds); 
news = new List<jsons>(); 


      string rId = res[0]["raportId"].ToString();   ---->a 
      string rTitle = res[0]["raportTitle"].ToString();  --->b 
      news.Add(new jsons() { raportId = rId, raportTitle = rTitle}); 


     Presslist.ItemsSource = news; 
} 

내가 값을 액세스해야하는 '또 다른

코드로 하나의 방법에서 통과 할 수있는 경우 클래스 전역 객체, 즉, 나는 모든 방법에서 그 값을 사용할 필요가, 그것도 가능한 것 다음과 같이 다른 버튼 클릭 이벤트에서 a '및'b '를 입력하십시오.

private void Add_to_cart(object sender, EventArgs e) 
{ 
    //values need to come here 
} 

참고 : Add_to_cart는

+0

클래스 수준 변수를 사용하십시오. – Hassan

+0

당신은 그것을 요약 할 수 있습니까 – Vinod

+1

당신은 여러 가지'rId'와'rTitle'을 가지고 있습니다. 당신은 그들 모두를 다른 방법으로 저장하고 접근하기를 원합니 까? –

답변

1

는 변수 클래스 수준

String _rId =""; 
String _rTitle =""; 

void Downloadpage() 
{ 
    WebClient webclient = new WebClient(); 

    webclient.Headers["ContentType"] = "application/json"; 
    webclient.DownloadStringCompleted += wc_downloadStringCompleted; 
    webclient.DownloadStringAsync(new Uri("http://client.web.net/pages_wp.php"), 
UriKind.RelativeOrAbsolute);   
} 

public void wc_downloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
{ 
    string lreport = e.Result.ToString(); 
    string lnoHTMLs = Regex.Replace(lreport, @"<[^>]+>|&nbsp;|&zwnj;|&raquo;|&laquo;|&ldquo;|\\n|\\t|", "", RegexOptions.Multiline).Trim(); 
    string lnoHTMLNormaliseds = Regex.Replace(lnoHTMLs, @"\s{2,}", " "); 


    JArray res = JArray.Parse(lnoHTMLNormaliseds); 
news = new List<jsons>(); 


      string rId = res[0]["raportId"].ToString();   // ---->a 
      string rTitle = res[0]["raportTitle"].ToString();  // --->b 
      news.Add(new jsons() { raportId = rId, raportTitle = rTitle}); 
      _rId = rId; 
      _rTitle = rTitle; 


     Presslist.ItemsSource = news; 
} 

private void Add_to_cart(object sender, EventArgs e) 
{ 
    //values need to come here 
    //_rId 
    //_rTitle 
} 
+0

클래스 수준으로 만들지 않고도 메서드간에 전달할 모든 옵션 – Vinod

+1

클래스 수준 변수 없이는 어떻게 할 수 있는지 알지 못합니다. 'Add_to_cart'이벤트 내에서 액세스하기를 원하기 때문에 해당 기능의 범위 내에서 액세스 할 수있는 어딘가에 존재해야합니다. – GER

1

나는 당신이 일반적인 장소에이 값을 저장 할 수 있습니다 Downloadpage() 메소드를 호출하는 대신 생각 만들기를 클릭 버튼을 트리거됩니다. Session Level 또는 Application level 일 수 있습니다.

Add_to_cart() 메서드는 버튼 클릭 이벤트이므로 페이지로드 이벤트에서 다운로드 페이지를 호출해야하며 이벤트는 UI를 표시하기 전에 이벤트를 호출해야합니다. 그리고 Add_to_cart()이 호출 될 때 값을 검색하여 사용할 수 있습니다.

관련 문제