2012-12-13 12 views
6

में डेटा दिखाएं मैं एक एएसपी.नेट पेज लिख रहा हूं जो डेटाबेस से डेटा पढ़ता है और इसे एक टेबल में दिखाने की जरूरत है। किसी कारण से, मैं ग्रिड व्यू का उपयोग नहीं करना चाहता हूं।एएसपी.नेट एचटीएमएल टेबल

मैं HTML पृष्ठ पर किसी तालिका में डेटा कैसे दिखाऊं?

यह मेरी सी # कोड है:

 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);     
     } 

     thisConnection.Close(); 

यह मेरा ASPX पृष्ठ है:

<%@ 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> 

     **<%--Need the while output into here--%>** 

    </table> 
</asp:Content> 

उत्तर

11

मूल रूप से क्लासिक एएसपी \ पीएचपी \ स्पेगेटी कोड दृष्टिकोण का उपयोग करें।

सबसे पहले, अपना कोड एक सार्वजनिक विधि में रखें जो string देता है। विधि:

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; 
} 

तो फिर तुम ASP.NET में <%=getWhileLoopData()%> टैग का उपयोग कर सकते हैं कि <%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> 

वहाँ भी विकल्प है पुनरावर्तक नियंत्रण का उपयोग करने और अपने डीबी से डेटा को अपनी पसंद के आइटम टेम्पलेट में बांधने के लिए।

while (reader.Read()) 
    { 
     int id = reader.GetInt32(0); 
     string Name = reader.GetString(1); 
     string Pass = reader.GetString(2); 
     literalID.text += id.ToString(); 
     literalName.text += Name.ToString(); 
     literalPass.text += Pass.ToString(); 
    } 

इस सबसे आसान समाधान मुझे पता है, लेकिन यह साफ नहीं है:

+0

यू कर सकते हैं pls पूर्ण समाधान ?? या किसी उदाहरण दे: इस एक बेहतर विचार और अपने सर्वर के लिए सबसे अच्छा प्रदर्शन देने तो इस कोड का उपयोग कर रहा है? या उदाहरण लिंक ?? मैं तुम्हें नहीं मिल सकता। धन्यवाद। लेकिन मुझे पेज_लोडर – riad

+0

में आउटपुट लोड करने की आवश्यकता है, यह HTML पृष्ठ में <% # getWhileLoopData()%> का उपयोग करते समय त्रुटि दिखा रहा है। – riad

+0

बस <% Response.Write (getWhileLoopData())%> या <% = getWhileLoopData()%> इसके बारे में खेद है .. – Mortalus

1

उन्हें शीर्षक td रों नीचे tr में डाल दिया, और फिर अपने एएसपी पृष्ठ पर 3 literal नियंत्रण जोड़ें।
यहाँ html कोड है:

<tr align="left" style="background-color:#004080;color:White;" > 
    <td> ID </td>       
    <td> Name </td>    
    <td>Pass</td>       
</tr> 
<tr align="left" style="background-color:#004080;color:White;" > 
    <td><asp:Literal ID="literalID" runat="server"></asp:Literal></td>       
    <td><asp:Literal ID="literalName" runat="server"></asp:Literal></td>    
    <td><asp:Literal ID="literalPass" runat="server"></asp:Literal></td> 
</tr> 
+0

क्या आप कृपया मुझे HTML भाग लिखने में मदद कर सकते हैं ?? क्योंकि मैं आपको नहीं ले सकता, एचटीएमएल भाग कैसे लिखूं। – riad

+0

@riad मैंने एचटीएमएल कोड जोड़ा। –

+0

क्षमा करें, यह एक ही पंक्ति में सभी डेटा दिखा रहा है। लेकिन मुझे मल्टीपल पंक्ति की आवश्यकता है। मेरा मतलब डेटाबेस में सभी उपलब्ध पंक्ति है। – riad

1

आप अपने HTML मेज पर runat="server" विशेषता डाल, तो आप वास्तव प्रोग्राम के रूप में इसे अपने में कोड-पीछे पहुंच सकते हैं। यह काफी शक्तिशाली विशेषता है।

यह निश्चित रूप से सबसे अच्छा समाधान नहीं है, लेकिन यह एक बहुत ही शांत सुविधा कोई नहीं के बारे में जानता है।

+2

क्या आप कृपया एक उदाहरण दे सकते हैं ?? – riad

2

मैं आपको पुनरावर्तक नियंत्रण का उपयोग करने और दोहराने में अपनी HTML तालिका संरचना बनाने का सुझाव देता हूं।

एक ही रूप में
<table cellpadding="0" cellspacing="0" width="100%"> 
<asp:Repeater ID="rpt" runat="server" > 
<HeaderTemplate> 
<tr class="Header"> 
<td> 
ID 
</td> 
<td> 
Name 
</td> 
<td> 
Pass 
</td> 
</tr> 
</HeaderTemplate> 
<ItemTemplate> 
<tr> 
<td> 
<%# Eval("ID")%> 
</td> 
<td> 
<%# Eval("Name")%> 
</td> 
<td> 
<%# Eval("Pass")%> 
</td> 
</tr> 
</ItemTemplate> 
</asp:Repeater> 
</table> 

बाँध पुनरावर्तक आप gridview

धन्यवाद

-1

इस समाधान में बाँध के रूप में, सभी HTML टैग ग्राहक साइड और ग्राहक में बनाने के बजाय सर्वर के इस प्रक्रियाओं रेंडर करने के लिए किया है।

<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> 

     <% if(dt != null && dt.rows.count>0){ 
       foreach(var item in dt.rows) 
       {%> 
        <tr> 
         <td><%=item["ID"]%></td> 
         <td><%=item["Name"]%></td> 
         <td><%=item["Pass"]%></td> 
        </tr> 
        <%} 
       }%> 

    </table> </asp:Content> 
+0

इस कोड स्निपेट के लिए धन्यवाद, जो कुछ तत्काल सहायता प्रदान कर सकता है। एक उचित स्पष्टीकरण [काफी सुधार होगा] (https://meta.stackexchange.com/q/114762) यह दिखाकर इसका शैक्षणिक मूल्य है कि यह समस्या का एक अच्छा समाधान क्यों है, और भविष्य के पाठकों के लिए इसे और अधिक उपयोगी बना देगा, लेकिन समान नहीं, प्रश्न। स्पष्टीकरण जोड़ने के लिए कृपया अपना उत्तर संपादित करें, और संकेत दें कि कौन सी सीमाएं और धारणाएं लागू होती हैं। – GrumpyCrouton

संबंधित मुद्दे