|
DataGrid разные варианты реализации
|
|||
---|---|---|---|
#18+
Кто-нибудь сталкивался со следующей проблемой. Есть две asp.net-страницы на которых расположено по DataGrid (гриды одинаковые, данные берутся с одной базы с одной таблицы). Разница между страницами в том, что одна написана с и использованием разделения кода, другая нет (то есть все процедуры внутри <script></script>) Реализованы следующие методы protected void MyGrid_EditCommand(object sender; DataGridCommandsEventsArgs e) { MyGrid.EditItemIndex = e.Items.ItemIndex; MyGrid.DataBind(); } protected void MyGrid_CancelCommand(object sender; DataGridCommandsEventsArgs e) { MyGrid.EditItemIndex = -1; MyGrid.DataBind(); } protected void MyGrid_UpdateCommand(object sender; DataGridCommandsEventsArgs e) { TextBox1.text = ((TextBox)e.Items.Cells[0].Controls[1]).Text //это один и TextBox2.text = ((TextBox)e.Items.FindControls("edit_name")).Text //тот же элемент } Так вот страница без разделения кода в текстбоксы записывает измененные данные, а страница с разделением кода данные полученные из DataSet. ПОЧЕМУ??? Очень хотелось бы, чтобы и страница с разделением кода вела себя правильно... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2003, 08:50 |
|
DataGrid разные варианты реализации
|
|||
---|---|---|---|
#18+
при Update вызов MyGrid.DataBind(); тоже необходим ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2003, 12:15 |
|
DataGrid разные варианты реализации
|
|||
---|---|---|---|
#18+
2 monstrU Необходим до получения значений из грида? Так он же зальет его исходными данными и новых значений я не получу ? И почему точно такая же конструкция в монолитной странице работает и без DataBind()? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2003, 12:40 |
|
DataGrid разные варианты реализации
|
|||
---|---|---|---|
#18+
нужно делать самым последним оператором. только вот в втоей процедуре Update где эти самые даные меняются? вообще то говоря нужно получить новые введенные данные TextBox1.text = ((TextBox)e.Items.Cells[0].Controls[1]).Text //это один и TextBox2.text = ((TextBox)e.Items.FindControls("edit_name")). и потом sql запросом их в базу внести. и послдедним оператором bind сделать. а насчет того что что то работает в codeinline странице - не должно быть разницы. просто непонятно что ты там обновляешь. ведь отклик на событие Update - это просто отклик на нажате кнопки, поэтому нужно принудительно обновлять источник данных для datagrid ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2003, 13:32 |
|
DataGrid разные варианты реализации
|
|||
---|---|---|---|
#18+
Да суть дела-то не в том что я потом обновляю, просто согласитесь что в текстбоксы должны прийти НОВЫЕ значения, ведь я ему присваиваю Controls[1] - то есть редактируемые данные, а он мне вохвращает исходные (при DataBind() значение - xxx, я изменяю на xxx____, а он мне возвращает xxx хотя должен xxx______) и поэтому я не могу записать данные поскольку он мне возвращает СТАРЫЕ данные... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2003, 14:11 |
|
DataGrid разные варианты реализации
|
|||
---|---|---|---|
#18+
нет. если вы все правильно делате, то должны новые возращаться. например, скажите , в codebehind у вас в protected void MyGrid_UpdateCommand(object sender; DataGridCommandsEventsArgs e) стоит handles для Update ? я просто сам так оченб часто делаю, как вы описываете, и все работает. может валидатор какой мешает ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2003, 06:29 |
|
DataGrid разные варианты реализации
|
|||
---|---|---|---|
#18+
Если вы имеете ввиду InitializeComponent, то там это событие добавляется. И он же присваевает значение текстбоксам - значит отрабатывает (только не так как ожилается). Или вы о чем то другом? Тогда поясните пожалуйста... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2003, 09:25 |
|
DataGrid разные варианты реализации
|
|||
---|---|---|---|
#18+
вообще то правильно все - я по мотивам vb.net говорил. а в c# правильно должно быть ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2003, 10:30 |
|
DataGrid разные варианты реализации
|
|||
---|---|---|---|
#18+
Что кроме монстра спецов нет? Есть соображения? Вчера до предела все упростил и ниже привожу исходники. Кому не сложно попробуйте может у меня VS глючит... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Код: plaintext 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. 64. 65. 66. 67. 68. 69.
P.S. незабудьте исправить <%@ Page language="c#" Codebehind="main.aspx.cs" AutoEventWireup="false" Inherits="root.Main" %> и логин и пароль к серверу ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2003, 08:24 |
|
DataGrid разные варианты реализации
|
|||
---|---|---|---|
#18+
ОДНАКО... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2003, 08:44 |
|
DataGrid разные варианты реализации
|
|||
---|---|---|---|
#18+
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { TextBox1.Text = ((TextBox)e.Item.Cells[0].Controls[0]).Text; FillGrid(); } должно быть ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2003, 12:14 |
|
|
start [/forum/topic.php?fid=18&fpage=1043&tid=1396144]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 278ms |
total: | 414ms |
0 / 0 |