Передайте значение, если установлен флажок - PullRequest
0 голосов
/ 23 мая 2011

У меня есть форма, в которой есть несколько текстовых полей (45) с флажками рядом с каждым и кнопкой. Когда кнопка нажата, я хочу передать значения каждого текстового поля, у которого есть отмеченный флажок, в пустое место в другом классе, а те, которые не проверены, передают нулевое значение.

На данный момент у меня есть: Form1

private void button_Click(object sender, EventArgs e)
{
String Value1;
if (value1CheckBox.Checked)
{
    Value1 = value1TextBox.Text;
}
else
{
    Value1 = null;
}

String Value2;
if (value2CheckBox.Checked)
{
    Value2 = value1TextBox.Text;
}
else
{
    Value2 = null;
}

etc...

Form2 form2 = new Form2();
form2.insertSQL(Value1, Value2, etc...);
}

Form2

private void insertSQL(String Value1, String Value2, String etc...)
{
    /*
    Code to insert to SQL database
    */
}

Но эти швы очень неэффективны, и я уверен, что должен быть лучший способ передать значения, если флажки установлены. Буду признателен за любые советы по лучшему способу сделать это, также извините, если я использовал неправильную терминологию, я очень плохо знаком с программированием.

Ответы [ 2 ]

1 голос
/ 23 мая 2011

Хорошей идеей будет сохранить все свои флажки и текстовые поля в Словаре. Конкретный словарь, который вам нужно будет создать:

Словарь checkToText = new Dictionary ();

Затем поместите каждое сопоставление пары CheckBox / TextBox в словарь.

Наконец, в методе button_Clicked создайте цикл, который проходит по каждой паре ключ / значение в вашем словаре:

foreach (KeyValuePair<CheckBox, TextBox> pair in checkToText)
{
//do what you need to do
//pair.Key for checkbox
//pair.Value for textbox
}
0 голосов
/ 23 мая 2011

Я думаю, что ограничение, к которому вы стремитесь, состоит в том, что непроверенные флажки не пропускаются как часть сообщения формы.

Вы можете собрать javascript, который, по щелчку, соберет некоторый JSON и поместит его в скрытое значение, а затем десериализует JSON из скрытого значения (в коде вашего сервера). Это позволит вам установить нулевое значение для текстовых полей без необходимости зацикливания полей формы на стороне сервера.

Ремонтопригодность будет являться драйвером для вашего решения, делать это на стороне сервера или делать на стороне клиента, как я описал.

Кроме того, не забудьте очистить данные перед созданием SQL (как следует из названия вашей функции на стороне сервера). Вы не можете доверять этим данным!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...