2013-10-26 3 views
3

Я пишу страницу ASP.NET, которая читает данные из базы данных и должна показывать ее в таблице HTML. Я не хочу использовать gridView.как отображать данные в таблице HTML в asp.net

Вот код, я попытался с помощью C#:

protected void Page_Load(object sender, EventArgs e) 
    { 
    DataTable dt = new DataTable(); 
     List<UserDetails> details = new List<UserDetails>(); 

     using (SqlConnection con = new SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=Sample;Trusted_Connection=True;")) 
     { 
      using (SqlCommand cmd = new SqlCommand("select TOP 10 ImageFile,ProductName,Features from Product_category", con)) 
      { 
       con.Open(); 
       SqlDataAdapter da = new SqlDataAdapter(cmd); 
       da.Fill(dt); 
       foreach (DataRow dtrow in dt.Rows) 
       { 
        UserDetails user = new UserDetails(); 
        user.UserId = dtrow["ImageFile"].ToString(); 
        user.UserName = dtrow["ProductName"].ToString(); 
        user.Location = dtrow["Features"].ToString(); 
        details.Add(user); 
       } 
      } 
     } 
     return details.ToArray(); 
    } 
    public class UserDetails 
    { 
     public string UserId { get; set; } 
     public string UserName { get; set; } 
     public string Location { get; set; } 
    } 

Вот мой HTML код:

<table id="tbDetails" width="800" runat="server"> 
<tbody> 
<tr><td><table><tr><td></td></tr><tr><td></td></tr></table></td><td><table><tr><td></td></tr></table></td></tr> 
</tbody> 
</table> 
+1

Либо вы должны создать таблицу в коде позади или Привязать существующую таблицу с помощью AJAX вызова. –

+0

Возможный дубликат [Показать данные в таблице ASP.NET html] (http://stackoverflow.com/questions/13860490/show-data-in-asp-net-html-table) –

ответ

10

Прежде всего разместить код в одном частном метод, который возвращает строку , Метод:

public string getWhileLoopData() 
{ 
string htmlStr = ""; 
SqlConnection thisConnection = new SqlConnection(dbConnection); 
     SqlCommand thisCommand = thisConnection.CreateCommand(); 
     thisCommand.CommandText = "SELECT * from Test"; 
     thisConnection.Open(); 
     SqlDataReader reader = thisCommand.ExecuteReader(); 

     while (reader.Read()) 
     { 
      int id = reader.GetInt32(0); 
      string Name = reader.GetString(1); 
      string Pass = reader.GetString(2); 
      htmlStr +="<tr><td>"+id+"</td><td>"+Name+"</td><td>"+Pass+"</td></tr>"     
     } 

     thisConnection.Close(); 
     return htmlStr; 
} 

Чем вы можете использовать этот код:

<%=getWhileLoopData()%> tag in ASP.NET that is equal to <%Response.Write(getWhileData())%>

Это должно выглядеть примерно так:

<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/test.master" CodeFile="test.aspx.cs" Inherits="test" %> 

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="ContentPlaceHolder"> 
    <table width="100%" align="center" cellpadding="2" cellspacing="2" border="0" bgcolor="#EAEAEA" > 
     <tr align="left" style="background-color:#004080;color:White;" > 
      <td> ID </td>       
      <td> Name </td>    
      <td>Pass</td>       
     </tr> 

     <%=getWhileLoopData()%> 

    </table> 
</asp:Content> 

Существует также возможность использовать ретранслятор контроль и привязка данных из вашей базы данных к шаблону изделия

+0

Я нашел следующую ошибку в строке string Name = reader.GetString (1); «Данные являются нулевыми. Этот метод или свойство не может быть вызван значениями Null. ' – Velu

+0

Проверьте и отлаживайте свой код, существуют ли данные или нет .. как это работает для меня .. – Monika

+1

Спасибо, что он работает отлично. – Velu

2

Если вы хотите пройти вызов ajax, вы можете просто указать подходящую версию jquery. Напишите веб-метод позади кода. Вызовите его из Ajax и привяжите данные списка к таблице. Ниже приведен код.

Web Метод в Default.aspx.cs

[WebMethod] 
    public static List<UserDetails> GetDetails() 
    { 
     //Write your database logic here and add items in list 
     List<UserDetails> details = new List<UserDetails>(); 
     details.Add(new UserDetails() { Location="aaaa", UserId="adv", UserName="fdfds" }); 
     details.Add(new UserDetails() { Location = "bbbb", UserId = "hhhh", UserName = "aaaafds" }); 
     return details; 
    } 

Jquery AJAX вызов в ASPX

<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    var row = ""; 
    $.ajax({ 
     type: "POST", 
     url: "Default.aspx/GetDetails", 
     data: "{}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (msg) { 
      $.each(msg.d, function (index, obj) { 
       row += "<tr><td>" + obj.UserId + "</td><td>" + obj.UserName + "</td><td>" + obj.Location + "</td></tr>"; 
      }); 

      $("#tbDetails tbody").append(row); 
     } 
    }); 
}); 
</script> 

    <table id="tbDetails" width="800" runat="server" clientidmode="Static"> 
    <tbody> 
    <tr><td>Userid</td><td>UserName</td><td>Location</td></tr> 
    </tbody> 
    </table> 

Надеется, что это помогает.

1
 public string wogrid() 
     { 
     string htmlStr = ""; 
    SqlCommand cmd = con.CreateCommand(); 
    cmd.CommandText = "SELECT * from employees"; 
    con.Open(); 
    SqlDataReader reader = cmd.ExecuteReader(); 

    while (reader.Read()) 
    { 
     int empID = reader.GetInt32(0); 
     string empName = reader.GetString(1); 
     int age = reader.GetInt32(2); 
     string location = reader.GetString(3); 
     int salary = reader.GetInt32(4); 
     htmlStr += "<tr><td>" + empID + "</td>" + "<td>" + empName + "</td>" + "<td>" + age + "</td>" + "<td>" + location + "</td>" + "<td>" + salary + "</td></tr>";     
    } 

    con.Close(); 
    return htmlStr; 
    } 

} 

     /*****source code must me like ******/ 


     <table width="100%" align="center" cellpadding="2" cellspacing="2" border="0" bgcolor="#EAEAEA" > 
     <tr align="center" style="background-color:#004080;color:White;" > 
     <td width="20%"> empID </td>       
     <td width="20%"> empName </td>    
     <td width="20%">age</td> 
     <td width="20%">location</td> 
     <td width="20%">salary</td>      
     ![enter image description here][1] </tr> 

    <%=wogrid()%> 

</table> 
+0

Маленькое описание помогло бы много. –

1
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using TYPES; 
using BLLFactory; 
using BOFactory; 
using DALFactory; 

namespace WebApplication5 
{ 
    public partial class WebForm3 : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 

     protected void Button1_Click(object sender, EventArgs e) 
     { 
      IFSBLL fsv = BLLFactory.FSBLLF.ViewList(); 
      List<IFSBO> des = fsv.viewallListBLL(); 

      GridView2.DataSource = fsv; 
      GridView2.DataBind(); 
     } 

     protected void Button2_Click(object sender, EventArgs e) 
     { 

     } 

    } 
} 
-------------------------------------------------------------------------------- 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using TYPES; 
using BLLFactory; 
using DALFactory; 
using BOFactory; 

namespace WebApplication5 
{ 
    public partial class WebForm2 : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       viewdata(); 
      } 
     } 
     private void viewdata() 
     { 
      List<IFSBO> fs = DALFactory.FSDALF.viewallListBO(); 
      GridView1.DataSource = fs; 
      GridView1.DataBind(); 
     } 
     protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
     { 

     } 

     protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
     { 
      GridViewRow SelectedRow = GridView1.Rows[e.RowIndex]; 
      Label fsid = (Label)SelectedRow.FindControl("Label1") as Label; 

      DateTime depdt = Convert.ToDateTime((SelectedRow.FindControl("TextBox5") as TextBox).Text); 
      DateTime desdt = Convert.ToDateTime((SelectedRow.FindControl("TextBox6") as TextBox).Text); 
      int pcf = Convert.ToInt32((SelectedRow.FindControl("TextBox7") as TextBox).Text); 
      int fcf = Convert.ToInt32((SelectedRow.FindControl("TextBox8") as TextBox).Text); 
      int ecf = Convert.ToInt32((SelectedRow.FindControl("TextBox9") as TextBox).Text); 





      int id = int.Parse(fsid.Text); 
      DateTime depdt1 = Convert.ToDateTime(depdt); 
      DateTime desdt1 = Convert.ToDateTime(desdt); 
      int pcf1 = Convert.ToInt32(pcf); 
      int fcf1 = Convert.ToInt32(fcf); 
      int ecf1 = Convert.ToInt32(ecf); 
      int a = 0; 
      int x = pcf1; 
      int y = fcf1; 
      int z = ecf1; 

      if (x < y || x < z) 
      { 
       Response.Write("<script> alert('Premium class fare should not be lesser than First or Economy Class Fare')"); 
       a++; 

      } 
      if (y > x || y < z) 
      { 
       Response.Write("<script> alert('First class fare should not be greater than Premuium and should be greater than Economy Class')"); 
       a++; 

      } 
      if(z > y || z > x) 
      { 
       Response.Write("<script> alert('Economy class fare should not be greater than First or Economy Class Fare')"); 
       a++; 

      } 


      if (a == 0) 
      { 
       IFSBO boobj = BOFactory.FSBOF.EditFS(id, depdt1, desdt1, pcf1, fcf1, ecf1); 
       IFSBLL bllobj = BLLFactory.FSBLLF.Edit(); 
       bool success = bllobj.editfs(boobj); 
      } 

     } 

     protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
     { 
      GridView1.EditIndex = e.NewEditIndex; 
      viewdata(); 
     } 

     protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) 
     { 

      GridView1.EditIndex = -1; 
      viewdata(); 


     } 
    } 
} 
----------------------------------------------------------------------------------------- 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace TYPES 
{ 
    public interface IFSDAL 
    { 


     List<IFSBO> viewallListBO(); 

     bool editFSS(IFSBO bb); 
    } 
} 

----------------------------------------------------------------------------------- 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace TYPES 
{ 
    public interface IFSBO 
    { 
     int FlightScheduleID { get; set; } 
     string DepaarturePlace { get; set; } 
     string DestinationPlace { get; set; } 
     string Flight { get; set; } 
     int AirBusID { get; set; } 
     DateTime DepartureDateTime { get; set; } 
     DateTime ArrivalDateTime { get; set; } 

     double PremiumClassFare { get; set; } 
     double FirstClassFare { get; set; } 
     double EconomyClassFare { get; set; } 
     int PremiumClassSeatingAvailability { get; set; } 
     int FirstClassSeatingAvailability { get; set; } 
     int EconomyClassSeatingAvailability { get; set; } 
     double Vat { get; set; } 
     double Tax { get; set; } 
     int Distance { get; set; } 
     bool Status { get; set; } 
     string Description { get; set; } 
    } 
} 
======================================================================================= 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace TYPES 
{ 
    public interface IFSBLL 
    { 
     List<IFSBO> viewallListBLL(); 

     bool editfs(IFSBO boobj); 
    } 
} 
=========================================================================================== 
<?xml version="1.0"?> 

<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 

<configuration> 
    <system.web> 
     <compilation debug="true" targetFramework="4.5" /> 
     <httpRuntime targetFramework="4.5" /> 
    </system.web> 

    <connectionStrings> 
    <add name="connstr" connectionString="Data Source=intvmsql01;Intial catalog=db05tms223;User Id=pj05tms223;Password=tcstvm;" /> 

    </connectionStrings> 

</configuration> 
====================================================================================================== 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Data.SqlClient; 
using System.Configuration; 
using System.Data; 
using System.Data.Sql; 

namespace DAL 
{ 
    class DButility 
    { 
     //public static SqlConnection getconnection() 
     //{ 
     // string con = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; 
     // SqlConnection conn = new SqlConnection(con); 
     // return conn; 
     //} 
    } 
} 
================================================================================================== 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using TYPES; 
using BOFactory; 
using System.Data; 
using System.Data.SqlClient; 

namespace DAL 
{ 
    public class FSDAL:IFSDAL 
    { 
     List<IFSBO> fslist = new List<IFSBO>(); 

     public List<IFSBO> viewallListBO() 
     { 
      try 
      { 
       string ConnectionString = "Data Source = intvmsql01;" + 
        "Initial Catalog = db05tms223;" 
        + "User id=pj05tms223;" 
        + "Password=tcstvm;"; 

       SqlConnection connection = new SqlConnection(ConnectionString); 
       //SqlConnection connection = DButility.getconnection(); 
       connection.Open(); 
       SqlCommand cmd = new SqlCommand(); 
       cmd.CommandType = CommandType.StoredProcedure; 
       cmd.CommandText = "sp_viewfsd"; 
       cmd.Connection = connection; 
       SqlDataReader reader = cmd.ExecuteReader(); 
       while (reader.Read()) 
       { 
        int fsid = Convert.ToInt32(reader["FlightScheduleID"]); 
        string depplace = reader["DeparturePlace"].ToString(); 
        string desplace = reader["DestinationPlace"].ToString(); 
        string flight = reader["Flight"].ToString(); 
        int abid = Convert.ToInt16(reader["AirBusID"]); 
        DateTime depdt = Convert.ToDateTime(reader["DepartureDateTime"]); 
        DateTime aridt = Convert.ToDateTime(reader["ArrivalDateTime"]); 
        double pcf = Convert.ToDouble(reader["PremiumClassFare"]); 
        double fcf = Convert.ToDouble(reader["FirstClassFare"]); 
        double ecf = Convert.ToDouble(reader["EconomyClassFare"]); 
        int pcsa = Convert.ToInt16(reader["PremiumClassSeatingAvailability"]); 
        int fcsa = Convert.ToInt16(reader["FirstClassSeatingAvailability"]); 
        int ecsa = Convert.ToInt16(reader["EconomyClassSeatingAvailability"]); 
        double vat = Convert.ToDouble(reader["Vat"]); 
        double tax = Convert.ToDouble(reader["Tax"]); 
        int dist = Convert.ToInt16(reader["Distance"]); 
        bool stat = Convert.ToBoolean(reader["Status"]); 


        IFSBO employee = BOFactory.FSBOF.viewfs(fsid, depplace, desplace, flight, abid, depdt, aridt, pcf, fcf, ecf, pcsa, fcsa, ecsa, vat, tax, dist, stat); 
        fslist.Add(employee); 

       } 
       connection.Close(); 

      } 
      catch(Exception) 
      { 

      } 
      return fslist; 
     } 
     public bool editFSS(IFSBO bb) 
     { 
      bool flag = false; 
      string ConnectionString = "Data Source = intvmsql01;" + "Initial Catalog = db05tms223;" + "User id=pj05tms223;" + "Password=tcstvm;"; 

      SqlConnection connection = new SqlConnection(ConnectionString); 
      connection.Open(); 
      SqlCommand command = new SqlCommand(); 
      command.CommandType = CommandType.StoredProcedure; 
      command.CommandText = "sp_editFSD"; 
      command.Connection = connection; 
      SqlConnection conn = new SqlConnection(); 
      command.Parameters.AddWithValue("@FlightScheduleID", bb.FlightScheduleID); 
      command.Parameters.AddWithValue("@DepartureDateTime", bb.DepartureDateTime); 
      command.Parameters.AddWithValue("@ArrivalDateTime", bb.ArrivalDateTime); 
      command.Parameters.AddWithValue("@PremiumClassFare", bb.PremiumClassFare); 
      command.Parameters.AddWithValue("@FirstClassFare", bb.FirstClassFare); 
      command.Parameters.AddWithValue("@EconomyClassFare", bb.EconomyClassFare); 

      int rowaffected = command.ExecuteNonQuery(); 
      connection.Close(); 
      if (rowaffected > 0) 
      { 
       flag = true; 
      } 
      return flag; 
     } 
    } 
} 
===================================================================================================== 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using TYPES; 
using DAL; 

namespace DALFactory 
{ 
    public class FSDALF 
    { 



     public static List<IFSBO> viewallListBO() 
     { 
      IFSDAL cust = new FSDAL(); 
      List<IFSBO> cust1 = cust.viewallListBO(); 
      return cust1; 
     } 

     public static IFSDAL EditFS() 
     { 
      IFSDAL edit = new FSDAL(); 
      return edit; 
     } 
    } 
} 
========================================================================================= 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using TYPES; 
using BO; 

namespace BOFactory 
{ 
    public class FSBOF 
    { 



     public static IFSBO viewfs(int fsid, string depplace, string desplace, string flight, int abid, DateTime depdt, DateTime aridt, double pcf, double fcf, double ecf, int pcsa, int fcsa, int ecsa, double vat, double tax, int dist, bool stat) 
     { 
      IFSBO n = new FSBO(fsid, depplace, desplace, flight, abid, depdt, aridt, pcf, fcf, ecf, pcsa, fcsa, ecsa, vat, tax, dist, stat); 
      return n; 
     } 

     public static IFSBO EditFS(int id, DateTime depdt1, DateTime desdt1, int pcf1, int fcf1, int ecf1) 
     { 
      IFSBO b = new FSBO(id, depdt1, desdt1, pcf1, fcf1, ecf1); 
      return b; 
     } 
    } 
} 
======================================================================================== 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using TYPES; 
using DALFactory; 

namespace BLL 
{ 
    public class FSBLL:IFSBLL 
    { 
     public List<IFSBO> viewallListBLL() 
     { 
      List<IFSBO> obj = DALFactory.FSDALF.viewallListBO(); 
      return obj; 
     } 

     public bool editfs(IFSBO bb) 
     { 
      IFSDAL obj3 = DALFactory.FSDALF.EditFS(); 
      bool edit = obj3.editFSS(bb); 
      return edit; 
     } 

    } 
} 
===================================================================================== 

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using TYPES; 
using BLL; 


namespace BLLFactory 
{ 
    public class FSBLLF 
    { 
     public static IFSBLL ViewList() 
     { 
      IFSBLL obll = new FSBLL(); 
      return obll; 
     } 

     public static IFSBLL Edit() 
     { 
      IFSBLL obll1 = new FSBLL(); 
      return obll1; 
     } 
    } 
} 
Смежные вопросы