繁体   English   中英

在C#代码隐藏中呈现按钮

[英]Rendering a button in C# code-behind

我正在尝试在代码隐藏中构建表。 我所看到的是这样的:

Content += "<tr>";
Content += "<td>" + dt.Rows[i]["Provision"].ToString() + "</td>";
Content += "<td>" + dt.Rows[i]["MarkForReview"].ToString() + "</td>";
Content += "<td>" + dt.Rows[i]["IssueType"].ToString() + "</td>";
Content += "<td>" + dt.Rows[i]["Resolution"].ToString() + "</td>";
Content += "<td>" + dt.Rows[i]["Feedback"].ToString() + "</td>";
Content += "<td><input type=\"button\" ID=\"btnEdit\" runat=\"server\" OnClick=\"btnEdit_OnClick\" Text=\"Edit\" /></td>";
Content += "</tr>"; 

问题在于我如何渲染“编辑”按钮。 代码运行时,为按钮呈现的内容如下所示:

<td><input type="button" ID="btnEdit" runat="server" OnClick="btnEdit_OnClick" Text="Edit" /></td>

它不断给我一个btnEdit_OnClick不存在的“ JavaScript运行时错误”,但是我的代码中却包含以下内容:

    protected void btnEdit_OnClick(object sender, EventArgs e)
    {
        MdlCommentsExtender.Enabled = true;
        MdlCommentsExtender.Show();
        ScriptManager.GetCurrent(this).SetFocus(this.txtCommentBox);
    }

同样,该按钮不显示任何文本。 这只是一个小的灰色按钮。

有什么想法我做错了吗?

您可以将按钮呈现为文字。 但是,没有事件将附加到它,因为它不在控件树中。

换句话说,当按钮发回服务器时,将不会触发click事件。

这是一个例子-

protected void Page_Init(object sender, EventArgs e)
{
    var btnEdit = new Button {ID = "btnEdit", Text = "Edit" };
    btnEdit.Click += btnEdit_OnClick;
    PlaceHolder1.Controls.Add(btnEdit);
}

ASPX

<%@ Page Language="C#" ... %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<body>
    <form id="form1" runat="server">
        <asp:PlaceHolder runat="server" ID="PlaceHolder1" />
    </form>
</body>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM