【问题标题】:Displaying text different than DataTextField in a RadioButtonList在 RadioButtonList 中显示不同于 DataTextField 的文本
【发布时间】:2014-09-05 13:11:08
【问题描述】:

我尝试在 ASP.NET 和 C# 上开发一个基于 Web 的调查创建和填充应用程序,从 Sql Server 获取数据。我使用 DataBind 来绑定我的问题名称和答案。在下图中,我需要在 RadioButtonList 中仅显示问题编号(如 1、2、3 等)(不显示问题名称)和仅显示问题名称 在标签 lblQuestion 中作为;

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

        lblQuestion.Text = rbtnQuestions.SelectedItem.Text;
    }

由于我在 SelectedIndexChanged 事件中使用它,因此我还需要survey_question 表的“id”来显示问题下方的答案。

但由于我使用 DataTextFieldRadioButtonList textlblQuestion.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();

我怎样才能做到这一点? 谢谢。

【问题讨论】:

    标签: c# asp.net sql-server data-binding radiobuttonlist


    【解决方案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();        
    }
    

    【讨论】:

    • 非常感谢!这就是我想要的! :)
    猜你喜欢
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多