Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Placeholder и Databind
|
|||
|---|---|---|---|
|
#18+
Всем привет! Я каждый раз при загрузке страницы динамически добавляю контролы DropDownList в Placeholder. Там же после создания контрола перед непосредственным добавлением его в Placeholder я вбиваю в него данные, ну дак вот, если я сделаю это так: droplist.items.add("Proba1") droplist.items.add("Proba2") то всё работает отлично, то есть, я могу на странице выбрать любое выпадающее из списка значение из этих контролов и потом сколько угодно раз обновлять страницу (например наживать кнопку на форме) и это выбранное значение в списке так и будет выбранным, НО если я буду вбивать значения так: dim dtbl as new data.datatable dtbl= {здесь идёт кусок кода вытаскивающий из базы данных таблицу с полями} droplist.datasource=dtbl droplist.datatextfield="str_value" droplist.databind то если выбрать потом из выпадающих списков какое-то знаечение оно при PostBack-е снова сброситься!!!! Как быть?? Мне нужно как раз из базы брать данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2006, 15:45 |
|
||
|
Placeholder и Databind
|
|||
|---|---|---|---|
|
#18+
биндить (да и заполнять) дропдоун нужно только при первом добавлении. Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2006, 02:15 |
|
||
|
Placeholder и Databind
|
|||
|---|---|---|---|
|
#18+
биндить (да и заполнять) дропдоун нужно только при первом добавлении. а потом при postback-е добавляем снова дропдоун и данные уже будут там???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2006, 09:59 |
|
||
|
Placeholder и Databind
|
|||
|---|---|---|---|
|
#18+
Угу. Только добавлять дропдоун нужно пораньше (в идеале в Page_Init, но можно и в Page_Load) Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2006, 20:40 |
|
||
|
Placeholder и Databind
|
|||
|---|---|---|---|
|
#18+
Не работает Подскажите, где я ошибся Partial Class devices_add_device Inherits System.Web.UI.Page Dim Oraclass As New clsDBOracle("BopisBase") Dim sqlstring As String Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then bind_devices() 'забиндим список устройств ViewState("show") = False ViewState("first") = False Else If ViewState("show") = True Then 'Здесь будем вызывать процедуру отрисовки контролов show_controls() End If End If End Sub 'процедура занесения списка устройств в выпадающий список Private Sub bind_devices() types_list.DataSource = Oraclass.GetTable("select * from V_ALL_TYPES") types_list.DataTextField = "type_name" types_list.DataValueField = "id_type" types_list.DataBind() types_list.Items.Insert(0, "---Выберите тип устройства---") End Sub 'процедура отрисовки контролов 'отрисовываться будет только когда выбран элемент из списка устройств Private Sub show_controls() If types_list.SelectedIndex = 0 Then Return 'если не выбран никакой тип устройства, то просто выходим Dim tbl As HtmlTable = New HtmlTable Dim datbl As New Data.DataTable Dim i As Integer Dim row As HtmlTableRow Dim cell As HtmlTableCell Dim literal As Literal Dim editbox As TextBox Dim drop As DropDownList Dim btn As Button 'и теперь сначала получим из базы данные, а потом будем формировать таблицу элементов datbl = Oraclass.GetTable(String.Format("select * from v_params_for_type_device where id_type={0} order by ord", types_list.SelectedValue)) For i = 1 To datbl.Rows.Count ' создадим строку row = New HtmlTableRow() 'создадим первую клетку cell = New HtmlTableCell() literal = New Literal literal.Text = datbl.Rows(i - 1).Item("var_name").ToString + ": " cell.Controls.Add(literal) row.Cells.Add(cell) 'создадим вторую клетку cell = New HtmlTableCell() 'и вот тут нужно посмотреть, что же сюды пихать If datbl.Rows(i - 1).Item("must").ToString = "Y" Or datbl.Rows(i - 1).Item("lev") > 2 Then 'если вложенность больше двух, значит будем делать поле ввода editbox = New TextBox editbox.ID = "control" + datbl.Rows(i - 1).Item("id_var").ToString 'нужно для того, чтобы потом можно было найти этот контрол в форме по идентификатору из базы editbox.CssClass = "add_device_editbox" If datbl.Rows(i - 1).Item("type_var").ToString = "B" Then editbox.TextMode = TextBoxMode.MultiLine editbox.Rows = 3 End If editbox.ToolTip = datbl.Rows(i - 1).Item("comments").ToString If datbl.Rows(i - 1).Item("lev") > 2 Then editbox.ReadOnly = True 'поле ввода сделаем только для чтения cell.Controls.Add(editbox) Else drop = New DropDownList drop.ID = "control" + datbl.Rows(i - 1).Item("id_var").ToString 'нужно для того, чтобы потом можно было найти этот контрол в форме по идентификатору из базы drop.AutoPostBack = True 'разрешим отправку данных при выборе из списка информации drop.CssClass = "add_device_droplist" drop.ToolTip = datbl.Rows(i - 1).Item("comments").ToString cell.Controls.Add(drop) 'создадим теперь кнопку для добавления новой записи btn = New Button btn.ID = "but" + i.ToString btn.CssClass = "add_device_btn" btn.ToolTip = "Добавить новый элемент в список" cell.Controls.Add(btn) End If row.Cells.Add(cell) tbl.Rows.Add(row) Next params_holder.Controls.Add(tbl) If ViewState("first") = False Then bind_values() End Sub Protected Sub types_list_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles types_list.SelectedIndexChanged params_holder.Controls.Clear() 'очистим содержимое панели ViewState("show") = True show_controls() 'и покажем контролы End Sub Private Sub bind_values() Dim dtbl As New Data.DataTable Dim tb As New Data.DataTable Dim drplist As DropDownList dtbl = Oraclass.GetTable(String.Format("select * from v_params_for_type_device where id_type={0} order by ord", types_list.SelectedValue)) For Each rw As Data.DataRow In dtbl.Rows If rw.Item("lev") = 1 And rw.Item("must").ToString = "N" Then tb = Oraclass.GetTable(String.Format("select * from v_possible_params where id_type={0} and id_var={1}", types_list.SelectedValue, rw.Item("id_var"))) drplist = params_holder.FindControl("control" + rw.Item("id_var").ToString) drplist.DataSource = tb drplist.DataTextField = "str_value" drplist.DataValueField = "id_var" drplist.DataBind() drplist.Items.Insert(0, "---Выберите из списка---") End If Next ViewState("first") = True End Sub End Class ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2006, 21:29 |
|
||
|
Placeholder и Databind
|
|||
|---|---|---|---|
|
#18+
kostyaВсем привет! Я каждый раз при загрузке страницы динамически добавляю контролы DropDownList в Placeholder. Там же после создания контрола перед непосредственным добавлением его в Placeholder я вбиваю в него данные, ну дак вот, если я сделаю это так: droplist.items.add("Proba1") droplist.items.add("Proba2") то всё работает отлично, то есть, я могу на странице выбрать любое выпадающее из списка значение из этих контролов и потом сколько угодно раз обновлять страницу (например наживать кнопку на форме) и это выбранное значение в списке так и будет выбранным, НО если я буду вбивать значения так: dim dtbl as new data.datatable dtbl= {здесь идёт кусок кода вытаскивающий из базы данных таблицу с полями} droplist.datasource=dtbl droplist.datatextfield="str_value" droplist.databind то если выбрать потом из выпадающих списков какое-то знаечение оно при PostBack-е снова сброситься!!!! Как быть?? Мне нужно как раз из базы брать данные Сохрани выбранное значение, а потом при постбеке отображай его в списке,как выбранное. Список не должен занова перезаполняться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2006, 11:14 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=18&tid=1388448]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 388ms |

| 0 / 0 |
