我有一个存储过程,可以在我的表中选择数据。
USE [accounting2]
GO
/****** Object: StoredProcedure [dbo].[Get_Remittance] Script Date: 05/10/2017 09:32:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[Get_Remittance]
as
SELECT
ID as '#'
,COMPNAME as 'Company Name'
,[REMITTYPE] as 'Remittance Type'
,SCHEDPAY as 'Schedule Pay'
,CONVERT(varchar(10),[GEN_DATE], 101) AS 'Date Generated'
,CONVERT(varchar(10),[PAID_DATE], 101) AS 'Date Paid'
,CONVERT(varchar(10),[TRANS_DATE], 101) AS 'Date Transmitted'
,[MONTH] as 'Applicable Month'
FROM [accounting2].[dbo].[GMB_REMITTANCE]
这就是我在页面加载期间在我的tablE(HTML表格)中填充数据的方式。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//Display_RemittanceReport();
string query = "Get_Remittance";
DataTable dt = new CLS_SProd().ALLRemittance(query);
StringBuilder html = new StringBuilder();
html.Append("<table border = '1'>");
html.Append("<tr>");
html.Append("<th>");
html.Append("");
html.Append("</th>");
foreach (DataColumn column in dt.Columns)
{
html.Append("<th>");
html.Append(column.ColumnName);
html.Append("</th>");
}
html.Append("</tr>");
foreach (DataRow row in dt.Rows)
{
html.Append("<tr>");
html.Append("<td>");
//html.Append(@"<img src='Images\Pencil.ico' alt='' border=1 height=18 width=16 class='click - to - select'></img>");
html.Append("<a href='#'>Select</a>");
html.Append("</td>");
foreach (DataColumn column in dt.Columns)
{
html.Append("<td>");
html.Append(row[column.ColumnName]);
html.Append("</td>");
}
html.Append("</tr>");
}
html.Append("</table>");
PlaceHolder1.Controls.Add(new Literal { Text = html.ToString() });
Display_CompName();
}
}
基于上面的代码,我根据我的数据创建了一个表,并且总会有一个名为select的链接。
我的问题是如何使用该选项在我的文本框中传输当前行? 这是我的文本框
<asp:TextBox ID="TextBox7" runat="server" OnTextChanged="TextBox7_TextChanged" ></asp:TextBox>
更新代码
HTML
<title>GMB Monitoring System</title>
<script type="text/javascript">
$('a[actor=popup]').on('click', function () {
document.getElementById('TextBox21').value = $(this).closest('tr').find('td:eq(2)').text();
});
</script>
<%-- and so on...... --%>
C#
private void Display_Remittance()
{
//Display Remittance Report
string query = "Get_Remittance";
DataTable dt = new CLS_SProd().ALLRemittance(query);
StringBuilder html = new StringBuilder();
html.Append("<table border = '1'");
html.Append("<tr>");
html.Append("<th>");
html.Append("Select");
html.Append("</th>");
foreach (DataColumn column in dt.Columns)
{
html.Append("<th>");
html.Append(column.ColumnName);
html.Append("</th>");
}
html.Append("</tr>");
foreach (DataRow row in dt.Rows)
{
//Working Code
//html.Append("<td>");
//html.Append(@"<img src='Images\Pencil.ico' alt='' border=1 height=18 width=16 class='click - to - select'></img>");
//html.Append("<a href='#'>Select</a>");
// html.Append("<a actor='popup' href='#'>Select</a>");
//html.Append("</td>");
html.Append("<tr>");
html.Append("<td><a actor='popup' href='#'>Select</a></td>");
foreach (DataColumn column in dt.Columns)
{
html.Append("<td>");
html.Append(row[column.ColumnName]);
html.Append("</td>");
}
html.Append("</tr>");
}
html.Append("</table>");
PlaceHolder1.Controls.Add(new Literal { Text = html.ToString() });
}
TYSM
答案 0 :(得分:1)
你可以做这样的事情
html.Append("<td><a actor='popup' href='#'>Select</a></td>");
而不是在javascript中 1.]获取单元格中的第n个单元格值
$('a[actor=popup]').on('click', function () {
document.getElementById('TextBox7').value = $(this).closest('tr').find('td:eq(2)').text();
});
2.]获得整行
$('a[actor=popup]').on('click', function () {
document.getElementById('TextBox7').value = $(this).closest('tr').text();
});
答案 1 :(得分:0)
你可以通过基于某些id从db再次检索特定行来进行切断,但我会尝试使用JQuery的客户端方法。
客户端方法:
1)为每一行添加一个唯一的ID。 ID = “row_1”
2)编写一个JavaScript函数,该函数将行id作为参数。然后使用JQuery访问该特定行的内容,将数据复制到文本框中。
3)添加JavaScript以从每个选择链接E.g调用该函数。的onclick = “JavaScript的:fill_function( 'row_1');”