2013-07-24 46 views
0

我是新來的asp.net開發。我想問一個鏈接按鈕是否可以有兩個或更多的命令?在一個鏈接控件中的多個命令

我想要發生的是我的鏈接按鈕應該能夠處理編輯和更新命令。一旦我點擊了網格視圖中的鏈接,它就會在其各自的控件上顯示數據(即文本框的名稱將包含我點擊的數據),然後一旦我編輯了文本框中的任何數據並單擊它將更新的相同鏈接並保存在數據庫中。

<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有多個命令名,但是當你點擊linkbutton進行編輯時,你可以改變commandname爲「Update」。我認爲這將解決你的問題。改變linkbutton的命令名請參考this鏈接。

1

您不需要創建兩個命令。

首先將命令名稱設置爲編輯。因此點擊它。它會在控件中顯示數據。 也在單擊事件設置命令名稱更新。 並且在更新後將設置的命令名稱更改爲編輯。

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代碼是怎麼樣的?順便說一句,我使用3層架構。謝謝 – 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

相關問題