Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
20.11.2006, 18:18
|
|||
|---|---|---|---|
|
|||
GridView и темплейты + их заполнение |
|||
|
#18+
Привет. Ситуация такая: есть GridView и ItemTemplate такого вида: <ItemTemplate> <%#GetPriorityTextByID((int)Eval("Priority"))%> </ItemTemplate> Т.е. фактически таблица, с которой берутся значения для GridView содержит в себе ID нужных слов. Потом функции типа GetPriorityTextByID по этому ID делают запрос к базе и вырывают сам текст, уже с другой таблицы и это подставляется в саму ячейку (уже текст, а не его ID) - в общем классический вариант. Проблема в том, что есть у меня EditTemplate такой: <EditItemTemplate> <asp:DropDownList ID="PriorityList2" runat="server" DataSourceID="DATA_PROIRITYLIST" DataTextField="Priorities" DataValueField="ID"> </asp:DropDownList> </EditItemTemplate> Он выводит DropDownList, из которого можно выбрать уже новое значение поля. Все работает - выпадающий список отображается, но проблема в том, что я никак не могу установить выделеное значени этого списка. Т.е. выделить нужно текущее значение поля, а я не могу. Пытался несколько вариантов обработать: 1. На событие DropDownList - OnDataBound сделать что-то в виде этого: int ridx = GridView1.EditIndex-1; DropDownList ddl = sender as DropDownList; ddl.SelectedItem.Text = GridView1.Rows[ridx].Cells[0].Text; но проблема возникает в GridView1.Rows[ridx].Cells[0].Text - он всегда "", видимо на этом этапе GridView ещё или уже не содержит в своих ячейках данных. 2. На RowEditing сделать тоже самое, но на этом этапе не находится контрол (это событие, когда было задетекчено команда на редактирование ячейки, но собственно ячейка не была переведена в статус редактируемой, поэтому внутри неё нет контролов) Ребята, посоветуйте пожалуйста, как справиться с такой задачей без особых издевательств? СпасибоThink of an idea to change our world - and put it into action. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.11.2006, 20:27
|
|||
|---|---|---|---|
|
|||
GridView и темплейты + их заполнение |
|||
|
#18+
Это нужно делать в GridView.RowDataBound Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.11.2006, 15:19
|
|||
|---|---|---|---|
|
|||
GridView и темплейты + их заполнение |
|||
|
#18+
Нет, к сожалению даже в RowDataBound e.Row.Cells[0/...] тоже пусты.. (Think of an idea to change our world - and put it into action. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.11.2006, 18:59
|
|||
|---|---|---|---|
|
|||
GridView и темплейты + их заполнение |
|||
|
#18+
зато там есть e.Row.DataItem, откуда ты можешь взять необходимые тебе значения. Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2006, 13:02
|
|||
|---|---|---|---|
|
|||
GridView и темплейты + их заполнение |
|||
|
#18+
правла в том, что и e.Row.DataItem пуст ((( ещё идеи?Think of an idea to change our world - and put it into action. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2006, 14:32
|
|||
|---|---|---|---|
|
|||
GridView и темплейты + их заполнение |
|||
|
#18+
В RowDataBound? Быть того не может Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2006, 18:52
|
|||
|---|---|---|---|
|
|||
GridView и темплейты + их заполнение |
|||
|
#18+
точно говорю! Почемуто значение "". Может код сюда винуть?Think of an idea to change our world - and put it into action. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2006, 20:31
|
|||
|---|---|---|---|
|
|||
GridView и темплейты + их заполнение |
|||
|
#18+
Давай. И что биндится тоже покажи. Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.11.2006, 13:39
|
|||
|---|---|---|---|
|
|||
GridView и темплейты + их заполнение |
|||
|
#18+
В таком духе:<asp:GridView ID="GridView1" runat="server" CellPadding="4" DataKeyNames="ID" DataSourceID="DATA_MAIN" ForeColor="#333333" AutoGenerateColumns="False" OnRowDeleting="GridView1_RowDeleting1" OnRowUpdating="GridView1_RowUpdating1" AllowSorting="True" OnRowEditing="GridView1_RowEditing" OnRowCommand="GridView1_RowCommand" OnRowDataBound="GridView1_RowDataBound"> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <Columns> <asp:TemplateField HeaderText="Priority" SortExpression="Priority"> <ItemTemplate> <%#GetPriorityTextByID((int)Eval("Priority"))%> </ItemTemplate> <EditItemTemplate> <asp:DropDownList OnDataBound="FillPriorityControl" ID="PriorityList2" runat="server" DataSourceID="DATA_PROIRITYLIST" DataTextField="Priorities" DataValueField="ID"> </asp:DropDownList> </EditItemTemplate> </asp:TemplateField> В реализации: protected string GetPriorityTextByID(int PriorityID) { try { //return Text of Priority string defaultCmd = DATA_PROIRITYLIST.SelectCommand; DATA_PROIRITYLIST.SelectCommand = "SELECT [Priorities], [ID] FROM [_PriorityList] WHERE [ID] = @KeyID"; DATA_PROIRITYLIST.SelectParameters["KeyID"].DefaultValue = PriorityID.ToString(); DataView dv = (DataView)DATA_PROIRITYLIST.Select(DataSourceSelectArguments.Empty); DATA_PROIRITYLIST.SelectCommand = defaultCmd; return (string)dv[0][0]; } catch (Exception) { SetMessage("Some Error occurs during DataBase request with: PriorityID = '" + PriorityID.ToString() + "'"); } return ""; } protected void FillPriorityControl(object sender, EventArgs e) { int ridx = GridView1.EditIndex - 1; // записать в поля редактирования данные от редактируемой записи DropDownList ddl = sender as DropDownList; ddl.SelectedItem.Text = PriorityText; // GridView1.Rows[ridx].Cells[0].ToString(); } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { PriorityText = e.Row.DataItem.ToString(); !!! тут всегда "" } Think of an idea to change our world - and put it into action. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.11.2006, 19:48
|
|||
|---|---|---|---|
|
|||
GridView и темплейты + их заполнение |
|||
|
#18+
Не забывай делать проверку - if(e.Row.RowType == DataControlRowType.DataRow) Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.11.2006, 16:13
|
|||
|---|---|---|---|
|
|||
GridView и темплейты + их заполнение |
|||
|
#18+
На самом деле тотпример, что я привел выше - он нерабочий. Правильно вот такое написать в RowDataBound: if(e.Row.DataItem != null) ((DropDownList)(e.Row.Cells[0].FindControl("PriorityList2"))).SelectedValue = ((DataRowView)e.Row.DataItem)["Priority"].ToString(); не знаю почему, но если вместо названия колонки "Priority" писать её индекс (0 у меня), то значение какое-то другое. Они что, не по порядку там?Think of an idea to change our world - and put it into action. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.11.2006, 20:45
|
|||
|---|---|---|---|
|
|||
GridView и темплейты + их заполнение |
|||
|
#18+
Что значит "не по порядку"? Как в DataTable данные легли - так они и в DataView уходят Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=18&mobile=1&tid=1387256]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
21ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 334ms |

| 0 / 0 |
