2009-11-16 4 views
0

У меня есть объект User с методом Load, который принимает параметр UserId и загружает данные пользователей в переменные-члены объектов.Помощь с ASP.NET ObjectDataSource

Теперь, что бы я хотел сделать, это загрузить эти данные в элемент управления DetailsView, используя ObjectDataSource, но я в тупике относительно того, как.

Прежде всего, я не уверен, что у меня правильно настроен код, чтобы передать параметр (UserID) на SelectMethod (cUser.Load). Во-вторых, я не знаю, как я могу загрузить эти данные в DetailsView, так как я фактически не возвращаю результаты из метода Load, я просто загружаю объект данными ... вот мой код ..

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

Есть ли способ сделать то, что я пытаюсь достичь? если да, можете ли вы привести примеры с объяснением?

Очень ценный. Благодаря

+0

Мой друг, вы имеете в виду ASP.NET и не ASP, это другой мир :) Я редактировал для тебя. –

+0

очень верно, отправлено в спешке ... спасибо за исправление – Mark

+0

Нет, отформатировав ваш вопрос для вас дальше: P –

ответ