Итак, я хочу заполнить/привязать некоторые данные к checkboxlist, но не может казаться binf правильным значениям? Я хочу заполнить его информацией из ROW, а не всей колонки, что и происходит со мной. Вот вам какой-то код, чтобы показать вам, в чем проблема.Заполнить checkboxlist с элементами из базы данных?
Это код в XAML
<form id="form1" runat="server">
<div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT [Option1], [Option2], [Option3] FROM [Questions] WHERE ([QuestionID] = @QuestionID)">
<SelectParameters>
<asp:Parameter DefaultValue="1" Name="QuestionID" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
</div>
<asp:CheckBoxList ID="CheckBoxList1" runat="server" DataTextField="QuestionID" DataValueField="QuestionID">
</asp:CheckBoxList>
</form>
Это моя база данных (только пример одного) ссылки взяты из gyazo
Это мой код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Web.Configuration;
namespace ExampleCheckbox
{
public partial class Question_One : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string connectionString = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection con = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand();
command.Connection = con;
command.CommandType = CommandType.Text;
command.CommandText = "Select * from Questions";
SqlDataAdapter dataAdapter = new SqlDataAdapter(command);
DataSet questionsDataSet = new DataSet();
con.Open();
dataAdapter.Fill(questionsDataSet, "Question");
DataTable dt = questionsDataSet.Tables["Question"];
foreach (DataRow dr in dt.Rows)
{
ListItem newItem = new ListItem(dr["Option1"].ToString(), dr["QuestionID"].ToString());
CheckBoxList1.Items.Add(newItem);
}
CheckBoxList1.DataSource = questionsDataSet;
CheckBoxList1.DataTextField = "Option1";
CheckBoxList1.DataValueField = "QuestionID";
CheckBoxList1.DataBind();
}
}
}
Это также проблема я имею PROBLEM
Благодарности
Похоже, вы зацикливаете данные и вручную привязываете их вручную. Вы пытались удалить 4 линии привязки внизу? Прокомментируйте это и сообщите мне, что вы придумали. – SeanKendle
@SeanKendle Нет, я еще не знаю, я также получаю сообщение об ошибке «Оба источника данных и datasourceid ar не определены», когда я общаюсь с ним, но я могу избавиться от этой ошибки. – crsMC
Я бы либо избавился от этого цикла, а просто привязал 'CheckBoxList1' с' dt' или удалил (закомментировал сейчас) нижние 4 строки, которые databind * снова *. Кроме того, я бы настоятельно рекомендовал более четко называть элементы управления и переменные. Могут быть очевидны, что они делают сейчас, но через несколько месяцев это займет в два раза больше времени, чтобы читать и понимать ваш собственный код. – SeanKendle