powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / TestPage
4 сообщений из 4, страница 1 из 1
TestPage
    #38576600
adimmat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, Ребята.
У меня такая ситуация: Я самоучка в ASP.NET и хотел бы сделать сайт, тестовый. т.е. Я хочу на одной странице поставить Panel и несколько CheckBox-ов. На Panel-е будет выводится вопрос а каждому CheckBox-у будет соответствовать ответ. Проблема в том, что количество вопросов не определено заранее, может быть что в базе будет 30 вопросов и на каждый из них по 3 или 4 варианта ответа.
Подскажите пожалуйста, как это сделать, и вообще, в правильном ли направлении Я иду!!!
Спасибо!!!
...
Рейтинг: 0 / 0
TestPage
    #38576605
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adimmat,

знаешь если ты самоучка, то попробуй тестовую страницу сделать без динамически добавленных контролов.
а так тебе несколько ссылок
http://stackoverflow.com/questions/4216329/asp-net-dynamically-created-controls-and-postback
http://www.aspsnippets.com/Articles/Dynamic-Controls-Made-Easy-in-ASP.Net.aspx
http://bytes.com/topic/asp-net/insights/750415-how-use-dynamic-controls-asp-net

вообще ищи в яндексе asp.net dynamic controls
...
Рейтинг: 0 / 0
TestPage
    #38576866
mrigrek74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
adimmat,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 <asp:Repeater runat="server" ID="rQuestions">
        <ItemTemplate>
            <asp:Panel runat="server" GroupingText='<%# Eval("QuestionText") %>'>
                <asp:HiddenField ID="hfQuestionId" runat="server" Value='<%# Eval("QuestionId") %>' />
                <asp:Repeater runat="server" ID="rAnswers" DataSource='<%# Eval("Answers") %>'>
                    <ItemTemplate>
                        <div>
                            <asp:HiddenField ID="hfAnswerId" runat="server" Value='<%# Eval("AnswerId") %>' />
                            <asp:CheckBox ID="cbAnswer" runat="server" Text='<%# Eval("AnswerText") %>' />
                        </div>
                    </ItemTemplate>
                </asp:Repeater>
            </asp:Panel>
        </ItemTemplate>
    </asp:Repeater>
    <asp:Button ID="bSave" runat="server" Text="Сохранить" OnClick="btnSaveClick"/>



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
  public class Answer
        {
            public string AnswerText { get; set; }
            public int AnswerId { get; set; }
            public bool Selected { get; set; }
        }

        public class Question
        {
            public int QuestionId { get; set; }
            public string QuestionText { get; set; }
            public IEnumerable<Answer> Answers { get; set; }
        }
         
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
                return;

            var questions = new List<Question>
            {
                new Question
                {
                    QuestionId = 0,
                    QuestionText = "Вопрос 1 ?",
                    Answers = new List<Answer>
                    {
                        new Answer {AnswerId = 0, AnswerText = "Ответ 1_1"},
                        new Answer {AnswerId = 1, AnswerText = "Ответ 1_2"},
                    }
                },
                new Question
                {
                    QuestionId = 1,
                    QuestionText = "Вопрос 2 ?",
                    Answers = new List<Answer>
                    {
                        new Answer {AnswerId = 2, AnswerText = "Ответ 2_1"},
                        new Answer {AnswerId = 3, AnswerText = "Ответ 2_2"},
                        new Answer {AnswerId = 4, AnswerText = "Ответ 2_3"},
                    }
                },
            };

            rQuestions.DataSource = questions;
            rQuestions.DataBind();
        }

        protected void btnSaveClick(object sender, EventArgs e)
        {
            foreach (RepeaterItem  itemQ in rQuestions.Items)
            {
                var questionId = ((HiddenField)itemQ.FindControl("hfQuestionId")).Value;
                var answersRepeater = (Repeater)itemQ.FindControl("rAnswers");

                foreach (RepeaterItem itemAnsw in answersRepeater.Items)
                {
                    var answerId = ((HiddenField) itemAnsw.FindControl("hfAnswerId")).Value;
                    var @checked = ((CheckBox) itemAnsw.FindControl("cbAnswer")).Checked;
                    //TODO Save {QuestionId, AnswerId, Checked}
                }
            }
        }



И прочитать надо будет вот эту статью Hierarchical Data Binding in ASP.NET
...
Рейтинг: 0 / 0
TestPage
    #38577015
adimmat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mrigrek74,
Огромное спасибо. Очень помогли!!! Линк-просто офигенный!!!
Спасибо еще раз!!!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / TestPage
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]