将HTML表数据传输到asp.net文本框中

时间:2017-05-10 02:19:16

标签: c# jquery html asp.net

我有一个存储过程,可以在我的表中选择数据。

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

2 个答案:

答案 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');”