2014-09-04 16 views
0

我嘗試開發基於Web的調查創建和填充ASP.NET和C#應用程序以從Sql Server獲取數據。我使用DataBind來綁定我的問題名稱和答案。在圖片下方,我需要在RadioButtonList(不帶問題名稱)中只有問題編號(如1,2,3等)只顯示;問題名稱在標籤lblQuestion中;在RadioButtonList中顯示與DataTextField不同的文本

protected void rbtnQuestions_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     General.myquestionid = System.Convert.ToInt32(rbtnQuestions.SelectedValue); 

     lblQuestion.Text = rbtnQuestions.SelectedItem.Text; 
    } 

我還需要survey_question表的「ID」,因爲我用它在的SelectedIndexChanged事件顯示問題下面的答案。

enter image description here

但自從我使用DataTextField,既RadioButtonList的文本lblQuestion.Text表現出同樣的事情。我的數據綁定方式如下:

string sqlStr = "SELECT id, question_no, question, survey_answer_type_id FROM survey_question WHERE survey_id = '" + General.mysurveyid + "'"; 
cmd = new SqlCommand(sqlStr, connection); 
da.SelectCommand = cmd; 
da.Fill(data); 

rbtnQuestions.DataSource = data; 
rbtnQuestions.DataTextField = "question"; 
rbtnQuestions.DataValueField = "id"; 
rbtnQuestions.DataBind(); 
cmd.Dispose(); 

我該如何做到這一點? 謝謝。

回答

1

在頁面加載事件設置

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     string sqlStr = "SELECT id,question_no, CONVERT(varchar(10),(ROW_NUMBER() over (order by question desc))) AS QueNo,question, survey_answer_type_id FROM survey_question WHERE survey_id = '" + General.mysurveyid + "'"; 
     cmd = new SqlCommand(sqlStr, connection); 
     da.SelectCommand = cmd; 
     da.Fill(data); 

     ViewState["data"] = data; 
     rbtnQuestions.DataSource = data; 
     rbtnQuestions.DataTextField = "QueNo"; 
     rbtnQuestions.DataValueField = "id"; 
     rbtnQuestions.DataBind(); 
     cmd.Dispose(); 
    } 
} 

和問題設置在SelectedIndexChanged事件

protected void rbtnQuestions_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DataSet ds = (DataSet)ViewState["data"]; 

    DataRow[] row = ds.Tables[0].Select("id = '" + rbtnQuestions.SelectedValue + "'"); 
    lblQuestion.Text = row[0]["question"].ToString();   
} 
+0

謝謝你非常非常感謝!那就是我想要的! :) – quents 2014-09-04 10:08:08

相關問題