我遇到了動態鏈接按鈕的問題,我需要幫助。我正在創建一個基於數據表中記錄的動態asp.net表。我也使用動態鏈接按鈕。Asp.net Linkbutton循環
protected System.Web.UI.WebControls.LinkButton lb;
protected override void OnInit(EventArgs e)
{
// Build controls before page load
lb = new LinkButton();
lb.Text = "Update Image";
// LinkButton obj for updating record
lb.ID = "UpdateImg";
lb.Click += new EventHandler(UpdateImg);
this.Controls.Add(lb);
base.OnInit(e);
}
我創建了一個新的LinkButton實例的OnInit,所以我可以在頁面加載之前添加到頁面。
foreach (DataRow r in tb.Rows) // Create new row foreach row in table
{
TableRow tr = new TableRow();
// Build cells
TableCell c1 = new TableCell();
TableCell c2 = new TableCell();
TableCell c3 = new TableCell();
TableCell c4 = new TableCell();
TableCell c5 = new TableCell();
TableCell c6 = new TableCell();
c1.Controls.Add(new LiteralControl(r["Image_id"].ToString()));
tr.Cells.Add(c1);
c2.Controls.Add(new LiteralControl(r["Image_name"].ToString()));
tr.Cells.Add(c2);
c3.Controls.Add(new LiteralControl(r["Alt_text"].ToString()));
tr.Cells.Add(c3);
c4.Controls.Add(new LiteralControl("<input id=\"" + r["Image_id"].ToString() + "\" type=\"checkbox\"" + "\"></input>"));
tr.Cells.Add(c4);
LinkButton lbcopy = new LinkButton();
lbcopy = lb;
lbcopy.ID = "UpdateImg" + i;
i++;
c5.Controls.Add(lbcopy);
tr.Cells.Add(c5);
c6.Controls.Add(new LiteralControl("<a href=\"javascript:void(0);\" onclick=\"DeleteImage('" + r["Image_id"].ToString() + "','" + r["Image_name"].ToString() + "');\"><img src=\"../images/clipboard/del.png\" id=\"" + r["Image_id"].ToString() + "\" width=\"20\" height=\"20\" BORDER=0></a>"));
tr.Cells.Add(c6);
tblImageLibrary.Rows.Add(tr); // Assign tr to table
然後我使用foreach循環的每一行的數據表進行迭代,所以我可以建立每個錶行和單元添加到每一行。我遇到的問題是linkbutton出現在最後一行。可能是因爲只有一個linkbutton對象,並且通過每個循環迭代它被移動到下一行?
我是新來的asp.net,所以去我的容易。
有沒有其他方法可以使用? linkbutton用於編輯數據表中的記錄,這就是爲什麼我希望每行都有一個linkbutton。所以用戶可以編輯特定的行。 –
沒有任何直接使用的方法。 所以你必須使用if循環。 –