2012-04-18 59 views
0

我想在後面的代碼中創建錨,併爲每個錨都刪除按鈕。我不知道如果我可以調用每個具有ID的鏈接的事件處理程序,以便我可以刪除從數據庫指定的行。這就是我所做的。我創建了一個錨點和一個ASp按鈕,但不知道如何使用該ImageID調用它。可能嗎?如果是這樣如何?提前感謝!這是在C#中,asp.net。如何在代碼後面調用Button OnCLick事件處理程序的值?

HtmlAnchor apdf = new HtmlAnchor(); 
apdf.ID = Guid.NewGuid().ToString("N"); 
string ImageID = ""; 
if (dsreport != null && dsreport.Tables[0].Rows.Count > 0) 
{ 
     apdf.InnerText = dsreport.Tables[0].Rows[0]["ImageName"].ToString(); 
     apdf.Attributes.Add("style", "font-weight: bold; font-size: 13px; margin: 0px; font-family: Arial; color: #1e7c9b; text-decoration: underline"); 
     apdf.Target = "_blank"; 
     ImageSalesID = dsreport.Tables[0].Rows[0]["ImageID"].ToString(); 
     apdf.HRef = "PDFdownload.aspx?ID=" + ImageID; 

} 
Button btnDelete = new Button(); 
btnDelete.ID = Guid.NewGuid().ToString("N"); 
btnDelete.OnClick += Eventhandler; 
btnDelete.Text = "Delete"; 
+0

不確定你在問什麼,但你可以通過閱讀被點擊的按鈕的ID來知道按鈕是否被固定 – 2012-04-18 21:48:59

+0

不要在後面的代碼中創建這些按鈕。使用Repeater並創建一個Command按鈕並使用Repeater.ItemCommand並設置CommandArgument。它更乾淨,使用更少的代碼,更標準,更容易。 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.itemcommand.aspx(如果您願意,也可以使用DataList)。 – David 2012-04-18 21:51:42

回答

2

我希望這可以幫助你以某種方式

Button btnDelete = new Button(); 
    btnDelete.Click += new EventHandler(button_Click); 

    protected void button_Click (object sender, EventArgs e) 
    { 
     Button button = sender as Button; 
     string buttonid = button.ID.ToString() 
     // identify which button was what row to update based on id clicked and perform necessary actions 
    } 
+0

謝謝!它幫助我走了一半。是否有可能發送一些新的EventHandler(button_Click)像ImageID或東西? – Ram 2012-04-18 21:56:32

+0

看看這個http://stackoverflow.com/questions/4815629/how-do-i-pass-variables-to-a-buttons-event-method – 2012-04-18 22:04:55

0

據我所知,你按下一個按鈕,然後想刪除東西是關係到該按鍵;如果是這種情況,我會建議在按鈕上使用CommandArgument屬性。您也可以指定CommandName,這可以幫助確定發生什麼類型的操作。這裏有一個簡單的例子:

<asp:Button ID="btnDelete" runat="server" CommandName="DeleteRow" CommandArgument="1" Text="Delete Row 1" OnClick="DeleteRow" /> 
<asp:Button ID="btnDelete" runat="server" CommandName="DeleteRow" CommandArgument="2" Text="Delete Row 2" OnClick="DeleteRow" /> 
<asp:Button ID="btnDelete" runat="server" CommandName="DeleteRow" CommandArgument="3" Text="Delete Row 3" OnClick="DeleteRow" /> 

所有3個按鈕都會觸發相同的事件。然後在實際事件本身中,您可以檢查發件人的命令參數是什麼,通過將其轉換爲Button,就像這樣。

protected void DeleteRow(object sender, EventArgs e) 
{ 
    var buttonClicked = sender as Button; 
    var rowId = buttonClicked.CommandArgument; 
    var action = buttonClicked.CommandName; 

    // do something depending on the action and the argument 
} 

希望這會有所幫助。 :)

相關問題