2012-05-16 1 views
0

데이터베이스에서 채워진 드롭 다운 목록이 있습니다. dplTags.SelectedItem.Value를 사용할 때 은 내가 선택한 값이 아닌 첫 번째 값만 반환합니다.드롭 다운 목록에서 선택한 항목의 값을 가져 오는 방법은 무엇입니까?

누군가 내가 잘못 가고있는 곳으로 전화 할 수 있습니까?

나는 그것을 호출 할 때 :

String TagID = dplTags.SelectedItem.Value; // Will only select the first value???? 

그것은 항상 반환하는 첫 번째 항목이 아닌 선택된 하나의 TagID : 이것은 내가 그것을 결합하는 방법입니다

: \

using (var conn = new SqlConnection(Properties.Settings.Default.DBConnectionString)) 
      { 
       conn.Open(); 

       SqlDataAdapter daTags 
       = new SqlDataAdapter("Select * From Tag", conn); 

       DataSet dsTags = new DataSet("TagCloud"); 

       daTags.FillSchema(dsTags, SchemaType.Source, "Tag"); 
       daTags.Fill(dsTags, "Tag"); 

       daTags.MissingSchemaAction = MissingSchemaAction.AddWithKey; 
       daTags.Fill(dsTags, "Tag"); 

       DataTable tblTag; 
       tblTag = dsTags.Tables["Tag"]; 

       dplTags.DataSource = dsTags; 
       dplTags.DataMember = "Tag"; 
       dplTags.DataValueField = "TagID"; //Value Member 
       dplTags.DataTextField = "Value"; // Display Member 
       dplTags.DataBind(); 
      } 

도와주세요. 미리 감사드립니다. 페이지의

+0

try DropDownList.SelectedItem.Value.ToString(), 나를 위해 작동합니다. 또한 DropDownList 항목의 실제 SelectedValue를 확인하기 위해 코드를 디버그하려고 시도하십시오. –

+0

.ToString()이 diffrence를 만들지 않도록 시도했습니다. 항목 5를 선택하고 드롭 다운 목록에서 5 번째 항목의 값을 표시하지만 제출 버튼을 클릭하고 글 머리 기호로 내 코드를 검사하면 .selecteditem이 항상 첫 번째 항목입니다. – Pomster

+0

Adil의 솔루션이 귀하의 목적에 부합 할 수 있습니다. 저것 좀 봐. –

답변

3

? 다음과 같이 페이지의 초기로드에서만 바인딩해야합니다. 나는 당신이 모든 페이지로드에서 그들을 묶어 놓고 따라서 선택된 값이 사라지는 것으로 의심한다.

protected void Page_Load(object sender, EventArgs e) 
{ 

    if (!Page.IsPostBack) 
    { 
     //Please check if you are binding checkbox controls here. 
     //If not bring them in here 
    } 
} 
+0

하나의 page_load에 그냥 아니오, 나는 한 페이지 만 가지고 있습니다. – Pomster

1

킵 viewstate가 활성화하고 데이터 바인딩 드롭 경우에만 Page.IsPostback == 거짓 당신이 드롭 다운 목록 컨트롤에 바인딩 데이터입니다

+0

Romil -> http://stackoverflow.com/a/10616087/525251 – rt2800

1

첫 페이지로드시 드롭 다운 목록을 한 번 바인드하고 다시 게시시 바인딩하지 마십시오. 다시 바인딩하면 새 요소가있는 드롭 다운이 채워지고 이전 선택은 사라집니다.

if(!Page.IsPostBack) 
{ 
using (var conn = new SqlConnection(Properties.Settings.Default.DBConnectionString)) 
      { 
       conn.Open(); 

       SqlDataAdapter daTags 
       = new SqlDataAdapter("Select * From Tag", conn); 

       DataSet dsTags = new DataSet("TagCloud"); 

       daTags.FillSchema(dsTags, SchemaType.Source, "Tag"); 
       daTags.Fill(dsTags, "Tag"); 

       daTags.MissingSchemaAction = MissingSchemaAction.AddWithKey; 
       daTags.Fill(dsTags, "Tag"); 

       DataTable tblTag; 
       tblTag = dsTags.Tables["Tag"]; 

       dplTags.DataSource = dsTags; 
       dplTags.DataMember = "Tag"; 
       dplTags.DataValueField = "TagID"; //Value Member 
       dplTags.DataTextField = "Value"; // Display Member 
       dplTags.DataBind(); 
      } 
}