2017-04-19 48 views
0

我想實現一個現有表的刪除函數(按鈕)。我不能改變它完成的方式,所以我需要做一個stringbuilder。無論如何,你可以做一個asp:按鈕或只是一個按鈕,將觸發和事件onclick在一個stringbuilder中?只是將它添加到stringbuilder呈現爲純html,而不是一個控件。添加一個ASP:從表中的事件從服務器端的按鈕

什麼香港專業教育學院的嘗試:

foreach (SortableNode n in nodes) 
    { 
    html.AppendLine(
     "<tr id='" + NodeIdName() + n.id.ToString() + "' " + (n.sortOder == 0 ? " class='sortsep'" : "") + ">" + 
     "<td>" + n.Name + "<input type='hidden' name='" + NodeIdName() + n.id.ToString() + "' id='" + NodeIdName() + n.id.ToString() + "' value='" + n.id.ToString() + "' /></td>" + 
     "<td class='nowrap'>" + n.createDate.ToString("yyyy-MM-dd HH:mm:ss") + "</td>" + 
     "<td style='text-align: center;'>" + n.sortOder + "</td>" + 
     "<td><asp:Button id=\"BuTOTNON" + counter +"\" cssClass=\"btnDelLink\" runat=\"server\" CommandArgument=\"" + n.id + "\" OnClick=\"bDelete_Click\" Text='X'/>" + "</td>" + 
     "</tr>"); 
    } 
     lt_nodes.Text = html.ToString(); 

或用JS做這個客戶端的一個簡單的方法?

+0

你將不得不使用動態創建的控件,並將它們添加到代碼後面的頁面。 – VDWWD

回答

0

爲了任何人發現這一點,香港專業教育學院做它的工作,但實際砂礦持有人取代「litteral佔位符」,並做了這樣:

foreach (SortableNode n in nodes) 
    { 

    Button deleteBtn = new Button(); 
    deleteBtn.Text = "X"; 
    deleteBtn.Click += new EventHandler(bDelete_Click); 
    deleteBtn.ID = n.id.ToString(); 

    html.AppendLine(
    "<tr id='" + NodeIdName() + n.id.ToString() + "' " + (n.sortOder == 0 ? " class='sortsep'" : "") + ">" + 
     "<td>" + n.Name + "<input type='hidden' name='" + NodeIdName() + n.id.ToString() + "' id='" + NodeIdName() + n.id.ToString() + "' value='" + n.id.ToString() + "' /></td>" + 
     "<td class='nowrap'>" + n.createDate.ToString("yyyy-MM-dd HH:mm:ss") + "</td>" + 
     "<td style='text-align: center;'>" + n.sortOder + "</td><td>" 
    ); 

    PlaceHolder1.Controls.Add(new LiteralControl(html.ToString())); 
    PlaceHolder1.Controls.Add(deleteBtn); 
    PlaceHolder1.Controls.Add(new LiteralControl("</td></tr>")); 
    } 
相關問題