【问题标题】:How to get a table on a new web page when a button is Clicked单击按钮时如何在新网页上获取表格
【发布时间】:2016-09-16 12:25:05
【问题描述】:

这是我的一个标签:

 <asp:Button ID="button" runat="server" Text="ShowOrder" onclick="newTab" />

这是我的“aspx.cs”,当按钮被点击时会被调用

   protected void newTab(object sender, EventArgs e)
   {
      Response.Redirect("Default2.aspx?id="+txtSearchCustomerByID.Value);
   }      

我想要的是在加载时在加载的 web 选项卡(新页面)上打印我的 sql 表。

我的存储过程正在显示我的表的数据,其中 id 等于“用户在文本框中输入的 id”。

现在,

  protected void Page_Load(object sender, EventArgs e)
     {
     int id_no = int.Parse(Request.QueryString["id"]);
     if (Page.IsPostBack)
         {
         showOrders(id_no);
         } 
     }

现在我应该在 'Default2.aspx' 中包含什么,以便我可以通过使用来获取我的表格,

public void showOrders(int id)
   {
   using (SqlConnection con = new SqlConnection(strConnString))
   {
        SqlCommand cmd = new SqlCommand("showOrdersSP", con);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@id", id);
        con.Open();
        .......
   }
   }

我需要使用 DataTable

所以当我点击时,我会在新页面上得到数据表

【问题讨论】:

  • 尝试使用 QueryString 或 Session 在另一个页面中获取详细信息。
  • 我编辑了我的代码。我使用 QueryString 来获取值“id”。我想要一个包含我的表记录的数据表。

标签: asp.net ajax datatable


【解决方案1】:

您可以参考以下代码:

public void showOrders(int id)
   {
   using (SqlConnection con = new SqlConnection(strConnString))
   {
        DataTable dt = new DataTable();
        SqlParameter[] p1 = new SqlParameter[1];
        p1[0] = new SqlParameter("@id", id);    
        dt= getRecords_table("showOrdersSP", p1); // you will get your DataTable here

   }
   }

// Common Method for FillYour Tables
 private DataTable getRecords_table(string spname, SqlParameter[] para)
        {
            string connectionstring = System.Configuration.ConfigurationManager.ConnectionStrings["connName"].ConnectionString.ToString();
            SqlConnection con = new SqlConnection(connectionstring);
            SqlDataAdapter ad = new SqlDataAdapter(spname, con);
            ad.SelectCommand.CommandType = CommandType.StoredProcedure;
            DataTable dt = new DataTable();
            ad.SelectCommand.Parameters.AddRange(para);
            con.Open();
            ad.Fill(dt);
            con.Close();
            return dt;

        }

希望对你有帮助

谢谢

【讨论】:

  • 感谢您的努力。我尝试过这个。然后我将“dt”绑定到gridview,它可以工作但没有获取记录。它显示一个空表。
  • 您是否通过运行以下命令获取 SQL 服务器上的记录:exec showOrdersSP 1。我的意思是在 SQL 服务器上执行你的 sp ?
  • 你说dt= getRecords_table("showOrdersSP", p1);这里dt是空的?
  • 没有。我在做 dt = getRecords_table("showOrdersSP", p1); orderGrid.DataSource = dt; orderGrid.DataBind();打印表格。对吗?
  • dt= getRecords_table("showOrdersSP", p1);这里打个断点,检查dt是否被填满!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 2019-04-02
  • 1970-01-01
相关资源
最近更新 更多