2010-12-14 89 views
1

OK, donc je suis assez nouveau pour les applications Web, fait l'application Windows depuis un certain temps en VB mais je suis passé en C# pour les applications web. Ok, j'ai un textbox et j'ai un SQLDataSource appelé SQLDataSource1. Comment dans le monde puis-je lier la source à la zone de texte alors quand il charge, il va le peupler?C# Databind question

Quelqu'un peut-il me donner quelques exemples?

Ive a essayé ce qui suit,

Label1.Text = SqlDataSource1.SelectParameters.ToString(); 

Mais je reçois quelque chose d'autre que la valeur de la SQLDataSource. Je reçois ceci: System.Web.UI.WebControls.SqlDataSource

Merci

Répondre

0

J'ai trouvé une réponse ici sur Forum.ASP.Net

Voici ce qui a été dit par Zhang Samu (support Microsoft Online Community):

Il est difficile de lier la zone de texte à sqldatasource. Nous lions généralement les contrôles de données tels que FormView et GridView à sqldatasource et mettons un contrôle TextBox dans leur modèle. Et vous pouvez appeler la méthode FindControl de FormView pour récupérer la zone de texte.

Voir mon exemple.

protected void Button1_Click(object sender, EventArgs e) 
{ 
    TextBox box = FormView1.FindControl("TextBox1") as TextBox; 

} 

<form id="form1" runat="server"> 
<div> 
    <asp:FormView ID="FormView1" runat="server" DataKeyNames="countryid" DataSourceID="SqlDataSource1"> 


     <ItemTemplate> 
      countryid: 
      <asp:Label ID="countryidLabel" runat="server" Text='<%# Eval("countryid") %>'></asp:Label><br /> 
      countryname: 
      <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("countryname") %>'></asp:TextBox><br /> 
     </ItemTemplate> 
    </asp:FormView> 
    </div> 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString2 %>" 
     SelectCommand="SELECT * FROM [country]"></asp:SqlDataSource> 
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="retrieve value" /> 
</form> 
+0

Pourrais-je pas juste sur le chargement de la page utiliser quelque chose comme: Textbox1.text = SqlDataScource1(); ?? – GabrielVa

+0

@gabrielVa Je ne pense pas, je pense qu'il n'a pas été conçu pour être utilisé de cette façon. – LaGrandMere

+0

OK, je vais essayer et voir. On pourrait penser que ce serait comme une application Win avec ça. – GabrielVa

0

Une façon est d'avoir vos commandes dans un FormView ou DetailsView, puis définissez le DataSourceID du FormView au SqlDataSource et dans vos commandes vous les lierez comme ceci: asp: label id = ... Text = » <% # DataBinder.Eval (Container.DataItem, "MyFieldName")%> '/>, puis sur votre OnInit de la page, vous pouvez appeler MyFormView.DataBind();