Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / аналогия <span onclick=..... / 20 сообщений из 20, страница 1 из 1
21.09.2006, 17:19
    #34004051
Greedy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
Всем привет)
на ПХП был код примерно такого содержания:
echo("<span onclick=\"");
echo("form_find.submit();\" style=\"cursor:hand;\">"
.$data['TemplateName']."</span>");

хотелось бы реализовать тоже самое под .NET ,но тут пара проблем возникла
1)не нашел контрол типа SPAN (ну допустим его можно заменить на DIV)
2) у DIV нет события Click как у кнопки чтобы на него повесить свой обработчик!!:(

Что делать??
...
Рейтинг: 0 / 0
21.09.2006, 18:04
    #34004194
gaidar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
А написать прямо в коде страницы <span onclick="..."></span> почему не можете? :)--
Гайдар Магдануров
E-Mail | Блог | Сайт

Difficult I do now, impossible will take a while...
...
Рейтинг: 0 / 0
21.09.2006, 19:41
    #34004434
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
Код: plaintext
<span onclick="..."><%=data['TemplateName'];%></span>
...
Рейтинг: 0 / 0
21.09.2006, 20:30
    #34004512
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
замена echo - Response.Write и Response.WriteLine
...
Рейтинг: 0 / 0
22.09.2006, 09:23
    #34004956
Greedy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
главная проблемма в событии,а не в выводе тегов!!!
в форме написать просто сам тег не знаю как, потому что контролы подгружаются динамически,а-ля:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
            td = new TableCell();
            td.Text=dr["TemplateName"].ToString();
            td.Style.Value = "cursor:hand;";
            tr = new TableRow();
            tr.CssClass = "template";
            tr.Controls.Add(td);

            tb.Controls.Add(tr);
...
Рейтинг: 0 / 0
22.09.2006, 09:25
    #34004964
C...R...a...S...H
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
может просто использовать литеру.----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
22.09.2006, 09:51
    #34005037
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
Код: plaintext
td.Attributes.Add("onclick","myFunc();");
авторможет просто использовать литеру
Кстати, да, почитайте что-нибудь :)
...
Рейтинг: 0 / 0
22.09.2006, 10:36
    #34005206
Greedy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
Спасибо за совет...все время что нить читаю)))
2 C...R...a...S...H
каким образом литера,если я правильно понял который
Код: plaintext
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
мне поможет в создании события на стороне сервера? или это возможность
написать ручками <span>...</span> ???

2 Роман Дынник
вариант с
Код: plaintext
td.Attributes.Add("onclick","myFunc();");
я уже рассматривал ,но он позволяет добавить события на клиенте,а мне
нужно на сервере!...
...
Рейтинг: 0 / 0
22.09.2006, 11:01
    #34005338
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
Greedy
2 Роман Дынник
вариант с
Код: plaintext
td.Attributes.Add("onclick","myFunc();");
я уже рассматривал ,но он позволяет добавить события на клиенте,а мне
нужно на сервере!...
Это как раз на сервере...
...
Рейтинг: 0 / 0
22.09.2006, 11:05
    #34005363
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
Greedyкаким образом литера,если я правильно понял который
Код: plaintext
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
мне поможет в создании события на стороне сервера? или это возможность
написать ручками <span>...</span> ???

Код: plaintext
td.Controls.Add(New LiteralControl(ChrW( 60 ) & "span" & " onclick='myFunc();'" & ChrW( 62 ) & "мой текст" & ChrW( 60 ) & "/span" & ChrW( 62 )))
...
Рейтинг: 0 / 0
22.09.2006, 11:24
    #34005458
Greedy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
да что то нифига не получается,пишу:
Код: plaintext
td.Attributes.Add("onclick", "Templ_Click");
процедура такой:
Код: plaintext
1.
2.
3.
private void Templ_Click(object sender, EventArgs e)
    {
        ((TableCell)sender).BackColor = System.Drawing.Color.DarkMagenta;
    }
ругается броузер на отсутствие обьекта - то бишь ищет жава скрипт на странице!!! а без серверного события код:
Код: plaintext
td.Controls.Add(New LiteralControl(ChrW( 60 ) & "span" & " onclick='myFunc();'" & ChrW( 62 ) & "мой текст" & ChrW( 60 ) & "/span" & ChrW( 62 )))
теряет смысл(((
...
Рейтинг: 0 / 0
22.09.2006, 15:05
    #34006488
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
ааа!
так тебе постбек нужен.
вешай так:
td.Attributes.Add("onclick", "Templ_Click('param1','param2')");
а в Templ_Click отправляй форму.
Но правильней в ASP.NET использовать Repeater и тогда можно будет на сервере для твоего случая использовать событие ItemCommand.
...
Рейтинг: 0 / 0
22.09.2006, 15:31
    #34006601
C...R...a...S...H
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
http://blogs.gotdotnet.ru/personal/gaidar/PermaLink.aspx?guid=edc973a6-3bd9-4697-bdc4-45291d79e2df----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
22.09.2006, 15:46
    #34006657
Dmitry Uvarov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
2Роман Дынник  безусловно, иногда лучше жевать, чем говорить...
ctrl.Attribute.Add("onclick", "myfunc()") создает атрибут вызова по клику клиентской функции myfunc(), заранее написанной на javascript. Причем тут Repeater я вообще не понял...

итак, лучше определиться, что именно хочет автор. Если простой ссылки-кнопки, то тут подойдет LinkButton (можно обвешать его стилями), если же более хитрого - текст, по которому можно кликнуть (как будующий пользователь вашего сайта - ни за что бы не догадался), то нужно две вещи:
1) получить клиенткий скрипт через ClientScriptManager.GetPostBackEventReference
2) добавить его в атрибут onclick у вашего span

вообще, в хелпе по ClientScriptManager.GetPostBackEventReference есть пример, как все это реализовать.http://ln.com.ua/~openxs/articles/smart-questions-ru.html
...
Рейтинг: 0 / 0
22.09.2006, 17:12
    #34006962
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
Dmitry UvarovПричем тут Repeater я вообще не понял...

Я так понял список данных какой то рендерится...
Greedy$data['TemplateName']
...
Рейтинг: 0 / 0
22.09.2006, 17:54
    #34007099
Greedy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
2 C...R...a...S...H
Прикольная статейка...прям как будто камень в мой огород)))

2 Dmitry Uvarov
похоже что Вы посоветовали то же ,что в статье товарища C...R...a...S...H
а насчет того догадались нажать на текст или нет, то есть стиль
Код: plaintext
td.Style.Value = "cursor:hand;";

Всем спасибо,я конечно воспользуюсь вашими советами,но пока для меня главное это работоспособность,а выкрутился я по старинке(то бишь завел скрытое поле TemplateID ):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
while (dr.Read())
        {
            td = new TableCell();
            td.Text=dr["TemplateName"].ToString();
            td.Style.Value = "cursor:hand;";
            td.Attributes.Add("onclick", "document.forms['form1'].TemplateID.value=" 
+ dr["TemplateID"].ToString()+ ";form1.submit();");

            tr = new TableRow();
            if (TemplateID.Value.ToString() == "") 
                       { TemplateID.Value = dr["TemplateID"].ToString(); }
            if (TemplateID.Value.ToString() == dr["TemplateID"].ToString())
            {
                tr.CssClass = "templ_sel";
            }
            else
            {
                tr.CssClass = "template";
            }
            tr.Controls.Add(td);
            tb.Controls.Add(tr);
        }
...
Рейтинг: 0 / 0
22.09.2006, 18:57
    #34007260
Dmitry Uvarov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
я просто написал практически одновременно ,когда начинал - того поста ещё не было :) удачиhttp://ln.com.ua/~openxs/articles/smart-questions-ru.html
...
Рейтинг: 0 / 0
22.09.2006, 19:37
    #34007316
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
            if (TemplateID.Value.ToString() == "") 
                       { TemplateID.Value = dr["TemplateID"].ToString(); }
            if (TemplateID.Value.ToString() == dr["TemplateID"].ToString())
            {
                tr.CssClass = "templ_sel";
            }
            else
            {
                tr.CssClass = "template";
            }
<OFF>
ИМХО смешная конструкция ;)
сперва проверяем значение - если ничего то присваиваем значение - а потом перепроверяем присвоилось ли значение!? ;)
что то не пойму - при каком условии есть возможность попасть в блок else !
</OFF>
...
Рейтинг: 0 / 0
25.09.2006, 10:29
    #34008977
Greedy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
2 vladgrig
ничего смешного,вызвавший непонимание код находится в цикле
и если не выполнить инициализацию(при первом посещении страницы)
Код: plaintext
1.
if (TemplateID.Value.ToString() == "") 
                       { TemplateID.Value = dr["TemplateID"].ToString(); }
то ВСЕГДА будет выполнятся блок ELSE
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
if (TemplateID.Value.ToString() == dr["TemplateID"].ToString())
            {
                tr.CssClass = "templ_sel";
            }
            else
            {
                tr.CssClass = "template";
            }
...
Рейтинг: 0 / 0
25.09.2006, 12:51
    #34009466
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналогия <span onclick=.....
автори если не выполнить инициализацию(при первом посещении страницы)

так ты же её выполняешь - зачем перепроверяешь после!!!???
Код: plaintext
1.
2.
3.
4.
Select
Case1
Case2
Case Else
End Select
!!!??? или у вас в с# такого нет
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / аналогия <span onclick=..... / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]