2011-11-09 7 views
0

포스트 백이 아닌 경우 목록 상자에 데이터 바인딩되고 데이터베이스에서 선택된 항목 (해당하는 경우)이 있습니다. 목록 상자와 포스트 백에서 새 항목을 선택하면 내 foreach 논리는 항상 원래 선택 사항 만보고 변경 사항은 표시하지 않습니다. 내 머리에 구글이 대답을 잡아 당긴다. 여기에 코드 뒤에 :multiselect 목록 상자에서 선택한 항목 가져 오기

foreach (ListItem li in lsb.Items) 
    { 
    if (li.Selected) 
    { 
     try 
     { 
     [sql insert] 
     } 
    } 
    } 

편집 : 나는 추가해야 목록 상자가 포함하고 updatepanel

됩니다

답변

0

태그 :

<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <asp:ListBox ID="ListBox1" runat="server" SelectionMode="Multiple"> 
      <asp:ListItem Value="1" /> 
      <asp:ListItem Value="2" /> 
      <asp:ListItem Value="3" /> 
      <asp:ListItem Value="4" /> 
      <asp:ListItem Value="5" /> 
     </asp:ListBox> 
     <asp:Button ID="btnPostback" runat="server" Text="Postback" OnClick="btnPostback_Click"/> 
    </ContentTemplate> 
</asp:UpdatePanel> 

코드 숨김 :

protected void btnPostback_Click(object sender, System.EventArgs e) 
{ 
    for (int i = 0; i <= ListBox1.Items.Count - 1; i++) { 
     ListItem li = ListBox1.Items(i); 
     if (li.Selected) { 
      try { 
       string sValue = li.Text; 
      // Do insert here 

      } catch (Exception ex) { 
      } 
     } 
    } 
} 
4

이 희망 너에게 뮤즈를 줄거야.

protected void MyListBox_TextChanged(object sender, System.EventArgs e) 
{ 
    try 
    { 
     listObject = sender as ListBox; 

     if (listObjct ! = null && !CheckItemInDBorNot(listObject.Text)) 
     { 
      // This item not exists in Db, 
      // excute sql insert it into Db. 
      Add(listOjbect.Text); 
     } 

    } 
    catch (Exception ex) 
    { 

    } 
} 
관련 문제