2013-07-24 3 views
0

Я новичок в разработке asp.net. Я хотел бы спросить, возможно ли, чтобы одна кнопка ссылки имела две или более команды?Несколько команд в одном элементе управления linkbutton

Что я хочу, так это то, что моя кнопка ссылки должна иметь возможность обрабатывать команды редактирования и обновления. Как только я нажму ссылку в моем представлении сетки, он покажет данные на своих соответствующих элементах управления (то есть текстовое поле для имени будет иметь данные того, что я нажал), после того как я отредактирую любые данные в текстовом поле и щелкнуть ту же самую ссылку, которую он обновит и сохранить в базе данных.

<asp:TemplateField HeaderText="ID"> 
        <ItemTemplate> 
         <asp:LinkButton ID="lnkEdit" runat="server" CommandArgument='<%#Eval("ID")%>' CommandName="Update" 
          HeaderText="ID" SortExpression="ID" Text='<%#Eval("ID")%>'> 
         </asp:LinkButton> 
        </ItemTemplate> 
       </asp:TemplateField> 

Заранее спасибо. Пожалуйста помоги!. :)

ответ

1

Невозможно иметь несколько имени команды для одной кнопки ссылки, но когда вы нажимаете кнопку ссылки для редактирования, вы можете изменить имя команды на «Обновить». Я думаю, что это решит вашу проблему. Для изменения имени команды для linkbutton обратитесь к ссылке this.

1

Вам не нужно создавать две команды.

Первое имя команды команды Edit. Следовательно, при нажатии на нее. Он отобразит данные в элементах управления. Также в поле имени события события click для обновления. И после обновления снова задайте имя команды Edit.

Write click event code like this. 

if(CommandName=="Edit") 
{ 
    //Fill Value in controls 
    // Set CommandName to Update 
} 
else if(CommandName=="Update") 
{ 
    // Update value in database 
    // Set command name to Edit 
} 

В качестве альтернативы вы можете использовать две кнопки с одним видимым за раз.

Надеюсь, что эта помощь.

+0

Привет, я прошу прощения, но я только начал изучать asp.net последние две недели назад, у меня есть следующий вопрос, с приведенным выше кодом. Как выглядит мой код aspx? Кстати, я использую трехуровневую архитектуру. спасибо – JennyJane

1

Привет Дженни использовать такой код: -

<asp:TemplateField HeaderText="ID"> 
       <ItemTemplate> 
        <asp:LinkButton ID="lnkEdit" runat="server" CommandArgument='<%#Eval("ID")%>' CommandName="Update" Onclick="lnkEdit_Click" 
         HeaderText="ID" SortExpression="ID" Text='<%#Eval("ID")%>'> 
        </asp:LinkButton> 
       </ItemTemplate> 
      </asp:TemplateField> 

В aspx.cs страница написание кода, как показано ниже: -

protected void lnkEdit_Click(object sender, EventArgs e) 
{ 
    LinkButton btn = (LinkButton)sender; 
    int Id = Convert.ToInt32(btn.CommandArgument.ToString()); 

    if(btn.CommandName=="Edit") 
    { 
     // Write here code for edit 
      btn.CommandName="Update"; 
    } 
    else if(btn.CommandName=="Update") 
    { 
     // Write here code for Update 
      btn.CommandName="Edit"; 
    } 
} 

Надеется, что это поможет.

+0

Большое спасибо за помощь. – JennyJane

Смежные вопросы