2009-03-29 5 views
0

Je veux afficher les nouvelles dans la balise marquee dans mon application bancaire, mais ce ne est pas happening.Please quelqu'un me aider ce qui est l'erreur dans mon code.Here est mon code:Besoin d'aide dans l'affichage marquee initié de données

<marquee bgcolor="silver" direction="left" id="marq1" runat="server" behavior="scroll" scrolldelay="80" style="height: 19px" width="565"> 
<% 
    String se = Session["countnews"].ToString(); 
    for (int i = 0; i < int.Parse("" +se); i++) 
    { %> 
     <strong><%Response.Write("&nbsp;&nbsp;" + Session["news"+i] + "&nbsp;&nbsp;"); %></strong> 
<% } %> 
</marquee> 

public class News 
{ 
    DataSet ds = new DataSet("Bank"); 
    SqlConnection conn; 
    String check; 
    SqlDataAdapter sda; 
    int i; 
    public string News_Name; 
    public int Count_News; 
public int newsticker() 
    { 
     conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BankingTransaction"].ConnectionString.ToString()); 
     check = "Select NewsTitle from News where NewsStatus = 'A'"; 
     sda = new SqlDataAdapter(check, conn); 
     sda.Fill(ds, "News"); 
     if (ds.Tables[0].Rows.Count > 0) 
     { 
      for (i = 0; i < ds.Tables[0].Rows.Count; i++) 
      { 
       News_Name =i+ ds.Tables[0].Rows[i].ItemArray[0].ToString(); 
      } 
      Count_News = ds.Tables[0].Rows.Count;  } 
     else 
     { 
      News_Name =0+ "Welcome to WestSide Bank Online Web site!"; 
      Count_News = 1; 
     } 
     return int.Parse(Count_News.ToString());  
    } 

protected void Page_Load(object sender, EventArgs e) 
    { 
     News obj = new News(); 
     try 
     { 
      obj.newsticker(); 
      Session["news"] = obj.News_Name.ToString(); 
      Session["countnews"] = obj.Count_News.ToString();  
     } 
     catch (SqlException ex) 
     { 
      Response.Write("Error in login" + ex.Message); 
      Response.Redirect("Default.aspx"); 
     } 
     finally 
     { 
      obj = null; 
     } 
    } 
+0

L'erreur peut provenir du contenu que vous essayez d'insérer. Veuillez donner un exemple des données que vous mettez dans la zone de cadrage. Aussi, que voulez-vous dire par "ce qui ne se passe pas"? élaborer quelle est l'erreur ... – Dror

+0

Je veux dire que les nouvelles ne flottent pas à l'intérieur de l'étiquette de marque.Bien que je ne reçois aucune erreur.Rest tous les autres contenus de la page fonctionne très bien. – user59637

Répondre

0

session [ "nouvelles" + i]

Mais vous ne mettez rien appelé « news'-plus-un entier dans le périmètre de la session. Vous itérez sur un ensemble de données et stockez chaque titre (mystérieusement préfixé par un nombre entier) en tant que la propriété 'News_Name' dans un seul objet News. Chaque écriture dans 'News_Name' écrase la précédente, donc seul le dernier titre est stocké à la fin dans Session ["news"]. Dans tous les cas, Session est un endroit problématique pour stocker des données par page: La session concerne les données qui persistent sur plusieurs chargements de pages et qui peuvent interférer si l'utilisateur charge deux pages à la fois.

Aussi, vous êtes Response.Write() ing une chaîne sans HTMLEncode() ing à la sortie, ce qui est une mauvaise nouvelle pour la sécurité (surtout sur un 'site bancaire'!) Si le titre de l'actualité peut contenir un caractère '<'. Et je ne suis pas tout à fait sûr de savoir pourquoi vous prenez l'entier 'newscount', le convertissant en chaîne, le convertissant en chaîne, le convertissant en chaîne à nouveau puis finalement l'analysant en entier. (?)

En général, cela ressemble à un mélange inconfortable de techniques classiques ASP et de codebehind. Il me semble qu'il devrait être possible d'écrire ce beaucoup plus simple en utilisant quelque chose comme:

<asp:Repeater DataSourceID="TickerSource" runat="server"> 
    <ItemTemplate><strong> 
     <%# Eval("NewsTitle") %> 
    </strong></ItemTemplate> 
</asp:Repeater> 

<asp:SqlDataSource ID="TickerSource" runat="server" 
    SelectCommand="SELECT NewsTitle FROM News WHERE NewsStatus='A'" 
    ConnectionString="<%$ ConnectionStrings:BankingTransaction %>" 
/> 

[Disclaimer: Je ne l'ai jamais fait écrit une ligne de ASP.NET dans ma vie, cela peut ne pas comme si. Les modifications apportées par d'autres utilisateurs .NET-avertis sont les bienvenues.]

Questions connexes