ASP.Net заполнить флажки быстрое решение? - PullRequest
0 голосов
/ 12 мая 2011

Мне просто интересно, есть ли быстрый способ заполнить мои чекбоксы из моего запроса

В настоящее время я делаю это

If Trim(DataTable.Rows(0).Item("COLUMN1").ToString()) = "Y" Then
cb1.Checked = True
Else
cb1.Checked = False
End If

If Trim(DataTable.Rows(0).Item("COLUMN2_FLAG").ToString()) = "Y" Then
cb2.Checked = True
Else
cb2.Checked = False
End If

If Trim(DataTable.Rows(0).Item("COLUMN3_FLAG").ToString()) = "Y" Then
cb3.Checked = True
Else
cb3.Checked = False
End If

Всего у меня 15 флажков, и кажется, что для заполнения этих флажков требуется много ненужного кода

есть какие-нибудь идеи быстрого способа сделать это?

Спасибо

Ответы [ 4 ]

3 голосов
/ 12 мая 2011

Ваши операторы if требуют логического выражения для оценки их потока. Флажки также получают логическое значение.

Я думаю, вы могли бы просто сделать:

cb1.Checked = Trim(DataTable.Rows(0).Item("COLUMN1").ToString()) == "Y"
cb2.Checked = Trim(DataTable.Rows(0).Item("COLUMN2_FLAG").ToString()) == "Y"
cb3.Checked = Trim(DataTable.Rows(0).Item("COLUMN3_FLAG").ToString()) == "Y"

Я работаю с C #, а не с vb, извините, если синтаксис неверен. Но в основном, если булево выражение оценивается как true, оно установит флажок check = true, а если оно оценивает false, оно установит его в false.

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

Если ваши соглашения об именах слишком доверяют и останутся непротиворечивыми, вы можете использовать цикл для прохождения через массив ваших флажков. Извините, это в C #, но я не уверен в своем синтаксисе VB.NET. Надеюсь, это должно быть легко конвертировать.

Checkbox[] checkboxes = new Checkbox[] { cb1, cb2, cb3.....};
foreach(var checkbox in checkboxes)
{
    string index = checkbox.Id.Substring(2);
    if (DataTable.Rows(0).Item("COLUMN" + index) != null)
          checkbox.Checked = DataTable.Rows(0).Item("COLUMN" + index).ToString() == "Y";
    else if (DataTable.Rows(0).Item("COLUMN" + index + "_FLAG" ) != null)
          checkbox.Checked = DataTable.Rows(0).Item("COLUMN" + index + "_FLAG").ToString() == "Y";
}
0 голосов
/ 12 мая 2011

Если это возможно, вы можете рассмотреть возможность создания своих флажков с использованием данных и элемента управления Repeater?

0 голосов
/ 12 мая 2011

Поместите это в функцию, принимая в качестве параметра строку и флажок.

public function func(byval col as string) as boolean

  return Trim(DataTable.Rows(0).Item(col).ToString()) = "Y" Then

end sub

Теперь вы можете просто вызвать эту функцию и назначить каждому флажку.

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