2009-11-16 5 views
0

J'ai un objet Utilisateur avec une méthode Load qui accepte un paramètre UserId et charge les données de cet utilisateur sur les variables de membre d'objets.Aide avec ASP.NET ObjectDataSource

Maintenant, ce que je voudrais faire est de charger ces données à un contrôle DetailsView en utilisant un ObjectDataSource, mais je suis perplexe quant à la façon dont. Tout d'abord, je ne suis pas sûr que j'ai le code correctement configuré pour passer le paramètre (UserID) à SelectMethod (cUser.Load). Deuxièmement, je ne sais pas comment je peux charger ces données au DetailsView puisque je ne retourne pas les résultats de la méthode Load, je charge simplement l'objet avec les données ... voici mon code ..

<asp:GridView runat="server" ID="gvUsers" DataKeyNames="UserID" BackColor="#eeeeee"  Width="85%" 
        HorizontalAlign="Center" 
        Font-Bold="True" Font-Names="Verdana" 
        Font-Size="10pt" AutoGenerateColumns="False" 
        OnRowDataBound="GridView1_RowDataBound" 
        OnRowDeleting="GridView1_RowDeleting" 
        OnSelectedIndexChanged="IndexChanged" > 
      <HeaderStyle BackColor="Black" ForeColor="White" 
        Font-Bold="True" HorizontalAlign="Center" /> 
      <SelectedRowStyle BackColor="yellow" ForeColor="blue" /> 
      <AlternatingRowStyle BackColor="#ffffff" /> 
        <Columns> 
         <asp:TemplateField> 
         <ItemTemplate> 
          <asp:LinkButton ID="LinkButton2" 
          CommandArgument='<%# Eval("UserID") %>' 
          CommandName="Select" runat="server"> 
          Select</asp:LinkButton> 
         </ItemTemplate>  
         </asp:TemplateField> 
         <asp:BoundField DataField="UserID" Visible="false" /> 
         <asp:BoundField DataField="FirstName" HeaderText="First Name"  /> 
         <asp:BoundField DataField="LastName" HeaderText="Last Name" /> 
         <asp:TemplateField HeaderText="Delete?"> 
         <ItemTemplate> 
          <asp:LinkButton ID="LinkButton1" 
          CommandArgument='<%# Eval("UserID") %>' 
          CommandName="Delete" runat="server"> 
          Delete</asp:LinkButton> 
         </ItemTemplate> 
         </asp:TemplateField> 
        </Columns> 
       </asp:GridView><br /><br /> 
       <asp:DetailsView runat="server" ID="dvUser"  DataSourceID="ObjectDataSource1" AutoGenerateRows="False" Width="85%" 
        HorizontalAlign="Center" DataKeyNames="UserID" > 
        <Fields> 
        <asp:BoundField DataField="UserID" Visible="false" /> 
        <asp:BoundField DataField="FirstName" HeaderText="First Name" /> 
        <asp:BoundField DataField="LastName" HeaderText="Last Name" /> 
        <asp:BoundField DataField="UserName" HeaderText="User Name" /> 
        <asp:BoundField DataField="Password" HeaderText="Password" /> 
        <asp:BoundField DataField="Birthdate" HeaderText="Birthdate" /> 
        <asp:BoundField DataField="Address" HeaderText="Address" /> 
        <asp:BoundField DataField="Apt" HeaderText="Apt" /> 
        <asp:BoundField DataField="City" HeaderText="City" /> 
        <asp:BoundField DataField="Province" HeaderText="Province" /> 
        <asp:BoundField DataField="PostalCode" HeaderText="PostalCode" /> 
        <asp:BoundField DataField="PhoneNum" HeaderText="PhoneNum" /> 
        <asp:BoundField DataField="Email" HeaderText="Email" /> 
        <asp:BoundField DataField="ynAdminUser" HeaderText="ynAdminUser" /> 
        <asp:CommandField ShowDeleteButton="False" ShowEditButton="True"  ShowInsertButton="True" /> 
> 
       </Fields> 
      </asp:DetailsView> 
       <asp:ObjectDataSource ID="ObjectDataSource1" 
        runat="server" SelectMethod="Load" TypeName="cUser"> 
        <SelectParameters> 
         <asp:ControlParameter ControlID="gvUsers" PropertyName="SelectedValue" Name="iUserID" Type="int32" /> 
        </SelectParameters> 
       </asp:ObjectDataSource> 

Y a-t-il un moyen de faire ce que j'essaie d'accomplir? Si oui, pouvez-vous s'il vous plaît donner des exemples avec l'explication?

Très apprécié. Merci

+0

Mon ami, vous faites référence à ASP.NET et non ASP, il est un autre monde :) J'ai édité pour toi. –

+0

très vrai, posté à la hâte ... merci pour la correction – Mark

+0

Pas de problème, formaté votre question pour vous plus loin: P –

Répondre