2012-04-18 12 views
0

私は、アンカーをアンカーごとに作成し、アンカーをアンカーごとに削除しようとしています。私は、データベースから指定された行を削除できるように、ID付きリンクのそれぞれについてイベントハンドラを呼び出すことができるかどうかはわかりません。これは私がやったことです。アンカーとASpボタンを作成しましたが、そのImageIDでどのように呼び出すことができないのか分かりません。出来ますか?もしそうなら、どのように?ありがとうございました!これはC#、asp.netにあります。ボタンの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を読んで、どんなボタンが押されているか知ることができます –

+0

これらはコードの背後には作成しないでください。 Repeaterを使用してコマンドボタンを作成し、Repeater.ItemCommandを使用してCommandArgumentを代わりに設定します。より洗練されたコードを使用し、より標準化され、簡単になります。 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.itemcommand.aspx(または、必要に応じてDataListを使用してください)。 – David

答えて

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

ありがとうございます!それは私が半分の道を行くのを助ける。 ImageIDや何かのような新しいEventHandler(button_Click)で何かを送ることは可能ですか? – Ram

+0

これを見てくださいhttp://stackoverflow.com/questions/4815629/how-do-i-pass-variables-to-a-buttons-event-method –

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 
} 

これが役に立ちます。 :)

関連する問題