從您的意見
在.aspx.cs
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
Populate();
}
private void Populate()
{
List<MyTableData> list = new List<MyTableData>();
for (int i = 0; i < 10; i++)
{
list.Add(
new MyTableData()
{
FirstName = "Firstname " + i.ToString(),
LastName = "Lastname " + i.ToString(),
Email = "Email " + i.ToString(),
Mobile = "Mobile " + i.ToString(),
CmdArgument = i.ToString()
});
}
gv.DataSource = list;
gv.DataBind();
}
protected void lnkBtn_Command(object sender, CommandEventArgs e)
{
string btnNumber = e.CommandArgument.ToString();
// more code...
lit.Text = "Button pressed <b>" + btnNumber + "</b>";
}
}
public class MyTableData
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Mobile { get; set; }
public string CmdArgument { get; set; }
}
在的.aspx
<div>
<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" CellPadding="5">
<Columns>
<asp:BoundField DataField="FirstName" HeaderText="First name" />
<asp:BoundField DataField="LastName" HeaderText="Last name" />
<asp:BoundField DataField="Email" HeaderText="Email" />
<asp:BoundField DataField="Mobile" HeaderText="Mobile" />
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:LinkButton ID="lnkBtn" runat="server" OnCommand="lnkBtn_Command" CommandArgument='<%# Eval("CmdArgument") %>'
Text='<%# Eval("CmdArgument", "Button {0}") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<hr />
<asp:Literal ID="lit" runat="server" />
的結果是
![enter image description here](https://i.stack.imgur.com/3TseE.png)
Source Code available
哪裏了'linktopage'從何而來? – balexandre 2011-05-24 11:20:18
我只是將它添加爲虛擬佔位符。實際上我希望linkbutton被添加到那裏。例如它應該被渲染爲名字,surnmae,email,mobile,htmllink – sam 2011-05-24 11:26:27
因此,你的'linktopage'是一個動作頁面,就像執行一個頁面或者執行一個命令一樣?你想這是同步還是異步? – balexandre 2011-05-24 11:31:13