【发布时间】:2019-06-17 18:54:45
【问题描述】:
我有一个用于填充表的 SQL 表,我想在该行中添加“删除”和“编辑”按钮。
我有一个输入文本框,对应于我的 sql 表中的列“PartNo”。我目前有两个函数:BuildTable 和 GetData,当按下按钮时都会调用它们。 GetData() 与 sql 数据库建立连接并使用用户指定的 PartNo 查询数据,BuildTable 使用 StringBuilder 类创建一个 html 表并用 sql 数据填充它。我希望每一行都有一个删除和编辑按钮,可以删除和编辑该特定行。
protected void BuildTable(Datatable dt){
//Building an HTML string;
StringBuilder html = new StringBuilder();
html.Append("<h3><b>Parts Location Details</b></h3>");
//table start
html.Append("<table align='center' bgcolor='#dbdbdb'>");
//Building the Header row.
html.Append("<tr >");
foreach (DataColumn column in dt.Columns)
{
html.Append("<th style='color: white' bgcolor='darkblue'>");
html.Append(column.ColumnName);
html.Append("</th>");
}
html.Append("<th style ='color:white' bgcolor ='blue'>Edit</th>");
html.Append("<th style ='color:white' bgcolor ='blue'>Delete</th>");
html.Append("<th style ='color:white' bgcolor ='blue'>Print</th>");
html.Append("<tr>");
//building the data row
foreach (DataRow row in dt.Rows)
{
countRows++;
html.Append("<tr>");
foreach (DataColumn column in dt.Columns)
{
html.Append("<td>");
html.Append(row[column.ColumnName]);
html.Append("</td>");
}
html.Append("<td><input type='button' value='Edit'/></td>");
html.Append("<td><input type='button' value='Delete' runat='server' onclick='btndelete_Click'/></td>");
//html.Append("<td><asp:button ID='delete' runat='server' Text='Delete' OnClick='btndelete'/></td>");
html.Append("<td><input type='button' value='Print'/></td>");
html.Append("</tr>");
}
//table end
html.Append("</table>");
//append the HTML string to PlaceHolder with ID=spDetailsNew
spDetailsNew.Controls.Add(new Literal { Text = html.ToString() });
}
我尝试过使用常规的 html 输入按钮和 asp:button 对象; asp:button 对象不会显示在表格上,并且输入按钮的“onclick”函数在单击时不会被调用。我还没有编写 Delete onclick 函数;它只是应该提示删除按钮已被按下,但它没有这样做。
【问题讨论】:
-
按原样,您没有定义每一行的标记。您应该考虑在此处使用视图模型和数据模型。绑定到页面控制器的数据。然后,您可以将每一行的 UID 用于编辑/删除按钮中的脚本调用。 (使用下面描述的 Thomas 标记类型。)或者只是创建将 ID 传递到另一个页面的文本链接。
标签: c# html asp.net datatables