2014-09-06 3 views
1

체크리스트 값을 단일 문자열로 가져 오려고합니다. ASP.net에서는 C#을 사용합니다.체크 박스 목록 값을 단일 문자열로 가져 오기

여기 내 코드가 있습니다. 전 세계적으로 이것을 선언했습니다.

string hobbies = ""; 

문자열에 선택한 항목을 얻을 수있는 코드입니다.

protected void chkListHobbies_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     for (int i=0;i<chkListHobbies.Items.Count;i++) 
     { 
     if (chkListHobbies.Items[i].Selected) 
     {     
      hobbies += chkListHobbies.Items[i].Value + ","; 
      } 

    } 
    hobbies = hobbies.TrimEnd(','); 

나는

 protected void btnEnter_Click(object sender, EventArgs e) 
    { 
     Response.Write("Hobbies= "+hobbies); 
    } 

그것은 예상 출력을 제공하지 않습니다 클릭 버튼이 표시하고 있습니다. 잘못되었거나 올바르게 수행하는 방법을 알고 싶다면이 문제를 해결하고 싶습니다. 미리 감사드립니다.

답변

1

Asp.net 웹 양식이 상태 저장되지 않기 때문에 btnEnter_Click 이벤트 처리기에 취미 목록을 만들어야하고 각 포스트 백 이후에 새로운 취미 변수를 갖게됩니다. 이 문제를 해결하려면 viewstate 또는 숨겨진 필드를 사용하여 취미 상태를 저장하고 나중에 사용하거나 btnEnter_Click에서 취미 목록 만들기를 제안해야합니다.

편집 (예) : btnEnter_Click의 모든 것을 1.Do

:

protected void btnEnter_Click(object sender, EventArgs e) 
    { 
     string hobbies = ""; 
     for (int i=0;i<chkListHobbies.Items.Count;i++) 
     { 
     if (chkListHobbies.Items[i].Selected) 
     {     
      hobbies += chkListHobbies.Items[i].Value + ","; 
      } 

    } 
    hobbies = hobbies.TrimEnd(','); 
    Response.Write("Hobbies=" + hobbies); 

구석 구석의 ViewState를 :

private string hobbies 
{ 
    get { return (ViewState["hobbies"] ?? "").ToString(); } 
    set { ViewState["hobbies"] = value; } 
} 

및 코드의 나머지 부분은 정확히이다 같은.

+0

모든 코드 예는 무엇입니까? – chathwind

+0

많은 감사합니다 .. 그것은 작동합니다 ... – chathwind

관련 문제