Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Помогите поймать id нажатой кнопки / 12 сообщений из 12, страница 1 из 1
20.11.2015, 17:26
    #39109317
mdm114
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите поймать id нажатой кнопки
Код: plaintext
1.
2.
<li><asp:LinkButton  ID="1" text=".." runat="server" OnClick="btn_Click"/></li>
<li><asp:LinkButton ID="2"  text="..." runat="server" OnClick="btn_Click"/></li>



...
Код: c#
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.
string BehavID ="0";
...
 protected void btn_Click(object sender, EventArgs e)
    {
         switch ((sender as LinkButton).ID)
        {
            case "1":
                BehavID = "0";
                mp1.Show();
                break;
            case "2":
                BehavID = "1";
                mp1.Show();
                break;
        }
        TB.Text = (sender as LinkButton).ID;//Это уж воткнул для проверки
    }

  protected void mp1_PreRender(object sender, EventArgs e)
    {
        switch (BehavID)
        {
            case "0":
            default:
                GridView1.DataSourceID = "SqlDataSource1";
        GridView1.DataBind();
                break;
            case "1":
                  GridView1.DataSourceID = "SqlDataSource2";
        GridView1.DataBind();
                break;
            
         
        }
      
    }


собсно сам
Код: plaintext
1.
<cc1:ModalPopupExtender ID="mp1"  runat="server" PopupControlID="Showmp1" CancelControlID="btnClose1" BackgroundCssClass="modalBackground"  PopupDragHandleControlID="Showmpe1" Drag="true" TargetControlID="1" RepositionMode="RepositionOnWindowResize" OnPreRender ="mp1_PreRender"/>



При нажатии на первую выдает окно с тем гридом который надо, но проверочный тексбокс пустой
При нажатии на вторую выдает опять же окно с тем гридом который надо и в проверочном тексбоксе правильное значение

При последующих нажатиях и на первую и на вторую входит окно с гридом и текстом от второй кнопки.
Че вообще ниче не пойму. Такое ощушение, что после двух нажатий id замирает на 1
...
Рейтинг: 0 / 0
20.11.2015, 18:21
    #39109371
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите поймать id нажатой кнопки
mdm114
Ну, во-первых, про ID = "1" или "2" не заливай. designer.cs твоей формы просто не скомпилится.
Во-вторых, смотри на ModalPopupExtender - что-то там наворотил.
Либо давай весь код формы...
...
Рейтинг: 0 / 0
20.11.2015, 20:56
    #39109505
mdm114
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите поймать id нажатой кнопки
Axeleron,
я немного упростил, так как во время тестов стока лишнего кода навалял. Думал так понятнее будет. Завтра попробую выложить полный код.

Пока у меня после всевозможных опытов тоже подозрения только на ModalPopupExtender остались
...
Рейтинг: 0 / 0
21.11.2015, 22:29
    #39109882
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите поймать id нажатой кнопки
mdm114Пока у меня после всевозможных опытов тоже подозрения только на ModalPopupExtender остались
У меня все отреботало ок, но без этого твоего попапа..
...
Рейтинг: 0 / 0
23.11.2015, 08:29
    #39110571
mdm114
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите поймать id нажатой кнопки
Спасибо за ответы, я честно и сам не в восторге от модальных окон, но другого решения пока не нашел. Дело в том, что на экран выводится таблица с большим количеством колонок и инфа в ней теряется. Поэтому в модальном окне выводится допинформация, которой нет в основной таблице+плюс различные расчеты..

сосбно вот полностью

всплывающее окно, в котором находится грид, который по задумке должен подгружаться разными датасоурс, дабы не плодить лишние всплывающие окна

Код: 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.
<cc1:ModalPopupExtender ID="mp1"  runat="server" PopupControlID="Showmp1" CancelControlID="btnClose1" BackgroundCssClass="modalBackground"  
PopupDragHandleControlID="Showmp1" Drag="true" TargetControlID="Link1" 
RepositionMode="RepositionOnWindowResize" OnPreRender ="mp1_PreRender"/>

<asp:Panel ID="Showmp1" runat="server" CssClass="modalPopup" Style="display: none"   >
<asp:UpdatePanel ID ="upd1"  runat="server" UpdateMode="Conditional" >
        <ContentTemplate>
<div class="header"></div>
    <div class="body">
<table>
    <tr>
        <td>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1"   
AutoGenerateEditButton="True" AutoGenerateDeleteButton="True" AutoGenerateColumns="True" CellPadding="4" 
ForeColor="#333333" GridLines="None" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" 
DataKeyNames="id" Width="400px"> 
     .....
     .....
</asp:GridView>  
    </td>
        <td></td>
        </tr>
    <tr>
        <td>
<asp:TextBox ID="TB17"  runat="server" CssClass="Box1" />
<asp:Button ID="Btn23" runat="server" Text="Добавить"  OnClick="Button23_Click" CssClass="button" />    
   </td>
        <td></td>
             </tr>
</table>
        
</div>
            </ContentTemplate>
        </asp:UpdatePanel>
   
    <div class="footer"><asp:Button ID="btnClose1" runat="server" Text="Закрыть" CssClass="btnClose"/></div>
            
</asp:Panel>



Код: html
1.
2.
<li><asp:LinkButton ID="link1" text="Адреса" runat="server" OnClick="btn_Click"/></li>
<li><asp:LinkButton  ID="link2"  text="Телефоны" runat="server" OnClick="btn_Click"/></li>



Код: c#
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.
string BehavID ="0";
...

protected void btn_Click(object sender, EventArgs e)
    {
         switch ((sender as LinkButton).ID)
        {
            case "link1":
                BehavID = "0";
                mp1.Show();
                break;
            case "link2":
                BehavID = "1";
                mp1.Show();
                break;
        }
        TB17.Text = (sender as LinkButton).ID;//Это уж воткнул для проверки
    }

  protected void mp1_PreRender(object sender, EventArgs e)
    {
        switch (BehavID)
        {
            case "0":
            default:
                GridView1.DataSourceID = "SqlDataSource1";
        GridView1.DataBind();
                break;
            case "1":
                  GridView1.DataSourceID = "SqlDataSource2";
        GridView1.DataBind();
                break;
            
         
        }
      
    }
...
Рейтинг: 0 / 0
23.11.2015, 09:45
    #39110606
mdm114
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите поймать id нажатой кнопки
удалил все. Переписал заново. Стало работать, но есть одно но!
При первом нажатии на link1 выводится все правильно, но
Код: plaintext
1.
TB17.Text = (sender as LinkButton).ID;


текстбокс выходит пустой. При последующих нажатиях на него тоже
Нажимаю на link2 Все замечательно и tb с записью. Нажимаю снова на link1 тоже работает и в tb правильная запись

Те. пока не нажму link2, событие на link1 фунициклирует не совсем правильно. На функционал это, впрочем, не влияет, просто уже интересно - почему так
...
Рейтинг: 0 / 0
23.11.2015, 14:21
    #39110993
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите поймать id нажатой кнопки
mdm114текстбокс выходит пустой. При последующих нажатиях на него тоже
Нажимаю на link2 Все замечательно и tb с записью. Нажимаю снова на link1 тоже работает и в tb правильная запись
Это-что (инициализация) где-то совсем элементарное пропущено. Дебажить!
...
Рейтинг: 0 / 0
23.11.2015, 15:07
    #39111083
mdm114
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите поймать id нажатой кнопки
Прриключения продолжаются. Опять специфика WebForm.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
//Внесение данных в разные таблички по нажатию одной и той же кнопки
protected void Button23_Click(object sender, EventArgs e)
    {
        switch (BehavID)
        {
            case "0":
              //внесение данных в первую таблицу
        
                break;
            case "1":
                //внесение данных во вторую таблицу
        
                break;
            default:
             
                break;
        }
       
       
    }


Так вот, BehavID у меня здесь всегда равен 0. Я так понимаю, что вебформа перезагружается полностью( какого хрена только?? ), так как переменная объявлена здесь.

Код: c#
1.
2.
3.
4.
5.
public partial class Page2 : System.Web.UI.Page
{
    string BehavID = "0";
    string TargetControlID = "link1";
...


Запись идет в первую таблицу.
В Windows Forms как то попроще было все. Как решить это?????


Привязался к DataSourceID

switch (DataSourceID)

Стало заполняться в правильную таблицу, но после обновления выскакивает таблица sqldatasource1, хотя всплывающее окно не закрывается. Как я понимаю все опять упирается в

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
 protected void mp1_PreRender(object sender, EventArgs e)
    {
        switch (BehavID)
        {
            case "0":
            default:
                GridView1.DataSourceID = "SqlDataSource1";
        GridView1.DataBind();
...



в туже самую переменную

ЗЫ: Сильно не пинайте..

ЗЫ 2: Имеет какое то значение где располагать sqldatasource? Внутри updatepanel или просто оставить в форме, где все остальные?
...
Рейтинг: 0 / 0
23.11.2015, 15:08
    #39111087
mdm114
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите поймать id нажатой кнопки
AxeleronЭто-что (инициализация) где-то совсем элементарное пропущено. Дебажить!

Не совсем понял. Можно поподробнее
...
Рейтинг: 0 / 0
23.11.2015, 15:28
    #39111113
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите поймать id нажатой кнопки
mdm114AxeleronЭто-что (инициализация) где-то совсем элементарное пропущено. Дебажить!

Не совсем понял. Можно поподробнее
Слишком много разрозненных вопросов. Есть острое ощущение, что Вам нужно почитать для начала о Page Lifecycle. Эту тему, начинающие изучать .NET почему-то остро игнорирурют и пропускают мимо, но совершенно напрасно, ибо пока не будет четкого понимания как работает страница и как связаные с ней контролы подобных вопросов будет очень много.
...
Рейтинг: 0 / 0
23.11.2015, 15:35
    #39111130
mdm114
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите поймать id нажатой кнопки
спасибо, почитаю
за ссылки на вразумительные описания буду премногоблагодарен..
...
Рейтинг: 0 / 0
23.11.2015, 21:20
    #39111496
mdm114
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите поймать id нажатой кнопки
Код: c#
1.
static string BehavID ="0";

, ёптиль!
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Помогите поймать id нажатой кнопки / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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