锚按钮调用服务器端方法
本文关键字:方法 服务器端 调用 按钮 | 更新日期: 2023-09-27 18:22:19
我想使用锚点按钮调用服务器端方法。我不能使用linkbutton
,因为我想在后面的代码中创建一个锚按钮。
下面是一个快速代码示例:我在前端创建了一个div
,id是"dv"
<div id ="dv" runat="server">
代码背后:
dv.InnerHtml = "<a href='"javascript:void(0);'" id=" + dxm.Id + " onclick='"__doPostBack('" + dxm.Id + "', '');'" > </a>";
在这个方法中,我想通过调用按钮来传递id。当单击该按钮时,它将进行回发并将id发送到此方法。
protect void PopupBox(string id)
{
//using the id get the data.
//show modalpopup box
}
我不想使用链接按钮。我用div作为例子。我正在使用一个树视图,其中我将使用节点文本创建一个锚按钮
node.text = "<a href='"javascript:void(0);'" id=" + dxm.Id + " onclick='"__doPostBack('" + dxm.Id + "', '');'" > </a>";
在asp.net版本4中,由于版本4包含额外的安全检查,这种"破解"回发操作不起作用。使用asp.net控件最好的方法是动态加载控件。这是我刚刚检查并工作的一些代码。
protected void Page_Load(object sender, EventArgs e)
{
// create the control dynamically
LinkButton lbOneMore = new LinkButton();
// the text and the commands
lbOneMore.Text = "One more click";
lbOneMore.CommandArgument = "cArg";
lbOneMore.CommandName = "CName";
// the click handler
lbOneMore.Click += new EventHandler(lbOneMore_Click);
// and now add this button link to your div
DivControl.Controls.Add(lbOneMore);
}
// here you come with the click, and the sender contains the commands
void lbOneMore_Click(object sender, EventArgs e)
{
txtDebug.Text += "<br> Command: " + ((LinkButton)sender).CommandArgument;
}
在asp.net页面上:
<div runat="server" id="DivControl"></div>
<asp:Literal runat="server" ID="txtDebug" />