c# - 将参数从动态创建的 HTML 元素传递给 onclick 事件 asp.net
问题描述
问题摘要:我正在向数据库发出请求,在该数据库中我根据用户获取创建的报告。
这些将列在一个带有下载按钮的表格中,每个报告都有一个下载按钮,用户可以在该按钮所在的位置下载报告。
我需要知道单击按钮时将使用什么报告。这就是问题所在。
到目前为止,我的解决方案不会asp:button
从StringBuilder
. 但是如果我把它放在 HTML 文件中,只需要一个基本的输入,它就会显示出来。
我的代码如下所示:
SqlDataReader sqlReader = DataFromADatabaseRequest
StringBuilder table = new StringBuilder();
table.Append("<table border='1'>");
table.Append(
"<tr>" +
"<th>ID</th>" +
"<th>Name</th>" +
"<th>Prefix</th>" +
"</tr>");
if (sqlReader.HasRows)
{
while (sqlReader.Read())
{
string uniqueIdentifierToFindWhatButtonIsClicked = sqlReader["Prefix"].ToString();
table.Append("<tr>");
table.Append("<td>" + sqlReader["Id"] + " </td>");
table.Append("<td>" + sqlReader["Name"] + " </td>");
table.Append("<td> <asp:Button id="btn_" + uniqueIdentifierToFindWhatButtonIsClicked + "' class='btnDownloadFile' CommandName=" + uniqueIdentifierToFindWhatButtonIsClicked + "/> </td>");
table.Append("</tr>");
}
}
table.Append("</table>");
然后我将其发送tablestring
到显示asp:placeholder
此表的位置。一切正常。但按钮不会显示。
如果我像正常人一样使用<input type="button" />
它,但我无法挂钩允许我传递参数的代码隐藏事件。
感谢所有帮助。
解决方案
.NET 已经具有用于动态生成带有按钮的行的控件。看看 ASP 中继器项目。您还可以将数据网格视图控件与模板列一起使用。有很多例子。不要试图重新发明轮子,我的朋友。:)
这是网格视图示例: 如何处理 Datagridview 中按钮列中的单击事件?
请注意,如果您需要逐行处理事情……例如更改按钮文本或样式或启用基于特定行数据的控件,您可以在绑定的项目数据中编写自定义代码。
这是行数据绑定技术: https ://www.c-sharpcorner.com/UploadFile/1e050f/rowdatabound-event-in-gridview-in-Asp-Net/
掌握动态表格数据和 Web 表单功能的诀窍是完全理解 .NET 框架为您提供的控件。
祝你好运!
推荐阅读
- excel - 向 EWS 电子邮件添加附件(使用 VBA)
- html - 隐藏在移动设备上的导航栏
- angular - ng-bootstrap Datepicker 默认导航年份为当前日期前 10 年
- c++ - 正在调用 x = std::array
() 与声明 std::array 相同 X? - angular - 在 jhipster 中如何集成角度管理主题模板而不是默认模板
- c# - 使用另一个数据表值更新数据表值
- javascript - Plotlyjs Treemap 图表未呈现
- solr - Solr:“基于点的字段不支持 rord()”
- reactjs - 如何在我的项目中使用来自 react-native-paper-dropdown 的下拉菜单?
- r - 我可以将 floor() 用于特定数字吗?