Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Sender
|
|||
|---|---|---|---|
|
#18+
Я привязал две кнопки к одному методу, подскажите как узнать какая кнопка вызвала метод? вот пытаюсь сделать но запутался Код: c# 1. 2. 3. 4. 5. 6. 7. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 11:31 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
гляньте под дебагом на этот sender ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 11:38 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
VIT2708, ... у кнопки можно использовать свойство CommandName ... а в обработчике соответственно Код: c# 1. 2. 3. http://msdn.microsoft.com/ru-ru/library/system.web.ui.webcontrols.button.commandname.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 11:45 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
carrotikVIT2708, ... у кнопки можно использовать свойство CommandName ... а в обработчике соответственно Код: c# 1. 2. 3. http://msdn.microsoft.com/ru-ru/library/system.web.ui.webcontrols.button.commandname.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-3 Оно как раз занято другим значением так как кнопка находится внутри repeater ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 12:05 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
VIT2708, интересно - зачем? а если каждой кнопке дать по методу? и не надо выяснять кто вызвал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 12:29 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
monstrUVIT2708, интересно - зачем? а если каждой кнопке дать по методу? и не надо выяснять кто вызвал. CommandName присваиваю id записи в базе CommandArgument - значение доступно/недоступно (знаю можна через хранимую процедуру все сделать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 12:40 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
VIT2708CommandName присваиваю id записи в базе CommandArgument - значение доступно/недоступновы не перепутали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 12:47 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
monstrUVIT2708, интересно - зачем? а если каждой кнопке дать по методу? и не надо выяснять кто вызвал. а зачем каждой давать по методу, если делают они одно и тоже? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 12:47 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
ZoriamonstrUVIT2708, интересно - зачем? а если каждой кнопке дать по методу? и не надо выяснять кто вызвал. а зачем каждой давать по методу, если делают они одно и тоже? они передают в ХР id записи и блокировать/не блокировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 12:53 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
Паганельвы не перепутали? да в принципе все равно что куда писать. но "красивше" было бы наоборот, аргумент всегда разный а команда типа да:нет :) VIT2708они передают в ХР id записи и блокировать/не блокировать да это мне понятно, это я не вам отвечала, а на вопрос monstrUинтересно - зачем? а если каждой кнопке дать по методу? и не надо выяснять кто вызвал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 13:03 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
VIT2708 Код: c# 1. нормально так сравнил ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 13:05 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
VIT2708, .. так CommandArgument можно делать составным (через Eval), а потом сплиттить .. Но это дело вкуса ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 13:08 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
ПарамонVIT2708 Код: c# 1. нормально так сравнил ) бывает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 13:30 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
VIT2708Zoriaпропущено... а зачем каждой давать по методу, если делают они одно и тоже? они передают в ХР id записи и блокировать/не блокировать а вот и нет - тут присутствуют две операции 1. включить блокировку 2. отключить блокировку операции на уровне бизнес логики разные, выносить нужно в разные методы. и ничего, что эти обе операции выполняются одной и той же stored procedure. в кнопку для включения в CommandArgument указать 1. в кнопку для выключения передать 0. в обработчике каждой кнопки получить нужное значение bool isBlock; и вот там уже вызвать cs метод BlockRecord(isBlock); как то вот так. благодаря этому тот человек, что будет работать с вашей страницей, поймет, что делает ваш обработчик события Command без поиска контрола с идентификатором btnIdи выяснением того, зачем он размещен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 15:48 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
monstrUVIT2708пропущено... они передают в ХР id записи и блокировать/не блокировать а вот и нет - тут присутствуют две операции 1. включить блокировку 2. отключить блокировку операции на уровне бизнес логики разные, выносить нужно в разные методы. и ничего, что эти обе операции выполняются одной и той же stored procedure. в кнопку для включения в CommandArgument указать 1. в кнопку для выключения передать 0. в обработчике каждой кнопки получить нужное значение bool isBlock; и вот там уже вызвать cs метод BlockRecord(isBlock); как то вот так. благодаря этому тот человек, что будет работать с вашей страницей, поймет, что делает ваш обработчик события Command без поиска контрола с идентификатором btnIdи выяснением того, зачем он размещен спасибо за урок, я наконец-то начала что-то понимать в бизнеслогике. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 16:02 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
monstrUVIT2708пропущено... они передают в ХР id записи и блокировать/не блокировать а вот и нет - тут присутствуют две операции 1. включить блокировку 2. отключить блокировку операции на уровне бизнес логики разные, выносить нужно в разные методы. и ничего, что эти обе операции выполняются одной и той же stored procedure. в кнопку для включения в CommandArgument указать 1. в кнопку для выключения передать 0. в обработчике каждой кнопки получить нужное значение bool isBlock; и вот там уже вызвать cs метод BlockRecord(isBlock); как то вот так. благодаря этому тот человек, что будет работать с вашей страницей, поймет, что делает ваш обработчик события Command без поиска контрола с идентификатором btnIdи выяснением того, зачем он размещен 1. включить блокировку 2. отключить блокировку зачем 2 операции когда через один параметр можна передать true или false через второй id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2013, 19:01 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
monstrU благодаря этому тот человек, что будет работать с вашей страницей, поймет, что делает ваш обработчик события Command без поиска контрола с идентификатором btnId и выяснением того, зачем он размещен VIT2708 1. включить блокировку 2. отключить блокировку зачем 2 операции когда через один параметр можна передать true или false через второй id я все уже написал - для упрощения поддержки. через годик кто то будет вашу страницу развивать, и существенно понятнее, когда есть метод BlockRecord, а не кнопка с ничего не говорящим названием btnID в которой в CommandArgument зачем то вбито 0, а в кнопку btnID2 зачем то вбито 1. хочу обратить внимание, этом кто то вы сами можете оказаться. еще вопрос - если операция блокировки должна выполняться не только на сайте, а еще и в другом приложении ? в windows сервисе например ? снова будете откуда то получать 0 или 1 и вызывать хранимку ? архитектура web+windows сервис часто встречается. так что более того, это метод BlockRecord должен быть вынесен в отдельную библиотеку, тогда вы эту бизнес логику сможете использовать в любых приложениях. если вы делаете как делаете, то развивать будет такую страницу крайне трудно. надо стараться делать так, чтобы код был понятен сам по себе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2013, 11:02 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
monstrUmonstrUблагодаря этому тот человек, что будет работать с вашей страницей, поймет, что делает ваш обработчик события Command без поиска контрола с идентификатором btnId и выяснением того, зачем он размещен VIT2708 1. включить блокировку 2. отключить блокировку зачем 2 операции когда через один параметр можна передать true или false через второй id я все уже написал - для упрощения поддержки. через годик кто то будет вашу страницу развивать, и существенно понятнее, когда есть метод BlockRecord, а не кнопка с ничего не говорящим названием btnID в которой в CommandArgument зачем то вбито 0, а в кнопку btnID2 зачем то вбито 1. хочу обратить внимание, этом кто то вы сами можете оказаться. еще вопрос - если операция блокировки должна выполняться не только на сайте, а еще и в другом приложении ? в windows сервисе например ? снова будете откуда то получать 0 или 1 и вызывать хранимку ? архитектура web+windows сервис часто встречается. так что более того, это метод BlockRecord должен быть вынесен в отдельную библиотеку, тогда вы эту бизнес логику сможете использовать в любых приложениях. если вы делаете как делаете, то развивать будет такую страницу крайне трудно. надо стараться делать так, чтобы код был понятен сам по себе. Вы меня немного не поняли никаких 0 или 1 на кнопке нет вот кусок кода разметки и codebehind aspx Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. cs //ф-я упростил для примера SourceBlock Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2013, 14:45 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
VIT2708, ..вы, кстати, подумайте над составным аргументом, а то появится третий параметр, мало ли, куда пихать будете? http://stackoverflow.com/questions/6939009/how-to-send-multiple-command-arguments-through-command-button-rowcommand-event ...и CommandName освободится ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2013, 15:00 |
|
||
|
Sender
|
|||
|---|---|---|---|
|
#18+
VIT2708, ваше решение понятно - можно использовать на один день. ну я бы так сделал. только вот писал я о последствиях такого решения. сейчас буду предсказывать будущее :). через год вам начальник дает задание - к этому сайту добавить windows сервис. одним из функционалов будет включение и выключение блокировки. за год вы совершенно забыли, что у вас эта бизнес операция уже была реализована, и написали метод для блокировок Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. через неделю вашего начальника вызывает к себе директор и предъявляет ему отчет, в котором суммы не совпадают с другими проверочными суммами. выяснение причин показывает, что числа отчета начали расходиться из-за того, что некоторые записи были заблокированы операций "заблокирован" , а некоторые записи заблокированы операцией "заблокирован администратором". минимальные последствия для вас буду, если скажут быстро переделать, максимальные - любые. так что писать надо так, как будто вам это приложение поддерживать еще 5 лет дальше. приложение, разработанное в вашем стиле, поддерживать трудно. что будет, если это windows сервис будет делать другой человек? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 09:58 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38420079&tid=1358056]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
82ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 278ms |
| total: | 457ms |

| 0 / 0 |
