2011-02-01 19 views
4

私が達成しようとしているのは、動的に作成されたlinkbuttonをonClickコマンドで設定し、クリックするとコード内でメソッドを実行します。これは私のコードです:この例では、ボタンを追加し、クリックされたときに新しいボタンを削除する「削除」するクリック機能を設定動的に作成されたリンクボタンにonclickイベントを追加する

protected void Page_Init(object sender, EventArgs e) 
{ 
    LoadLeftSide(); 
} 

private void LoadLeftSide() 
{ 
    string filepath = Server.MapPath("DataSource.xml"); 
    List<Post> list = PostHelper.GetAllPosts(filepath); 
    HtmlTable table = FindControl("tbl") as HtmlTable; 

    HtmlTableRow hearderrow = new HtmlTableRow(); 
    HtmlTableCell heardercell = new HtmlTableCell();  

    heardercell.InnerText = "Posts:";  
    hearderrow.Cells.Add(heardercell); 
    table.Rows.Add(hearderrow); 

    foreach (Post p in list) 
    { 
     HtmlTableRow row = new HtmlTableRow(); 
     HtmlTableCell cell1 = new HtmlTableCell(); 

     LinkButton lnkPost = new LinkButton(); 
     lnkPost.ID =string.Format("{0}" ,Guid.NewGuid()); 
     lnkPost.Attributes.Add("runat", "server"); 
     lnkPost.Text = p.Title; 
     // lnkPost.CommandName = p.Id.ToString(); 
     // lnkPost.CommandArgument = p.Id.ToString(); 
     //lnkPost.Command += new CommandEventHandler(this.onLinkClick); 
     lnkPost.Click += new EventHandler(this.onLinkClick); 

     cell1.Controls.Add(lnkPost);    
     row.Cells.Add(cell1); 
     table.Rows.Add(row); 

    } 
    table.DataBind(); 

} 

protected void onLinkClick(object sender, EventArgs e) 
{ 
    string filepath = Server.MapPath("DataSource.xml"); 
    int id = 1; 
    Post post=PostHelper.GetPostById(id, filepath); 
    lblDescription.Text = post.Description; 
} 
+0

あなたは実際にあなたの質問のタイトルに "asp.net"を置く必要はありません。 –

+0

そして....どうしたの? –

+0

これらのリンクボタンにonclickイベントを追加する方法と、イベントがpag​​eInitイベントでどのように発生するかを知りたいと思います。 – alina

答えて

-1

...

参照:Bind a click to a dynamic button with jQuery?

function addNewButton() { 
    $("sweet_selector_here").append("<input type='button' id='sweetness' value='press me, i am awesome' />"); 
    $("#sweetness").click(function() { 
    $(this).remove(); 
    }); 
} 
1

すべてのダイナミックリンクをPage_PreInitに作成し、すべてのページのポストバックに同じ階層を再作成します。次にASP.NETは、を処理することができます。OnClickダイナミックリンクのイベント。
そして、あなたは、これが

lnkPost.Attributes.Add("runat", "server"); 

たぶんASP.NETのメニューコントロールがより適しているであろう必要はありませんか?それはXPathでXMLからのバインディングをサポートします

関連する問題