gridview для formview - formview не показывает никаких данных - PullRequest
1 голос
/ 01 февраля 2011

У меня есть вид сетки, где, если вы выберете строку, она приведет вас к виду формы, где вы сможете просмотреть детали из этой записи и отредактировать данные.Это работало, когда у меня был только один параметр фильтра, но я добавил другой, и теперь форма просмотра пуста.Вот мой код:

<asp:AccessDataSource ID="courseinfo" runat="server" DataFile="~/App_Data/courseinfo.mdb" SelectCommand="SELECT [prefix], [course_number], [title], [date_submitted] FROM [tableCourse]">
</asp:AccessDataSource>

<asp:AccessDataSource ID="courseinfo2" runat="server" DataFile="~/App_Data/courseinfo.mdb" FilterExpression="prefix='{0}' AND course_number='{1}'" SelectCommand="SELECT * FROM [tableCourse]">
 <FilterParameters>
  <asp:ControlParameter Name="prefix" ControlID="GridView1" PropertyName="SelectedValue" />
  <asp:ControlParameter Name="course_number" ControlID="GridView1" PropertyName="SelectedValue" />
 </FilterParameters>
</asp:AccessDataSource>

<asp:GridView ID="GridView1" runat="server" DataSourceID="courseinfo" DataKeyNames="prefix,course_number"
                    OnSelectedIndexChanged="GridView1_SelectedIndexChanged" AutoGenerateColumns="False"
                    CellPadding="8" ForeColor="#333333" GridLines="vertical" BorderWidth="1" BorderColor="#dddddd"
                    AllowPaging="true" AllowSorting="true" AutoGenerateSelectButton="true">
                    <RowStyle BackColor="#eeeeee" />
                    <Columns>
                        <asp:BoundField DataField="prefix" HeaderText="prefix" SortExpression="prefix" />
                        <asp:BoundField DataField="course_number" HeaderText="number" SortExpression="course_number" />
                        <asp:BoundField DataField="title" HeaderText="title" SortExpression="title" />
                        <asp:BoundField DataField="date_submitted" HeaderText="date submitted" SortExpression="date_submitted" />
                    </Columns>
                    <FooterStyle BackColor="black" Font-Bold="True" ForeColor="White" />
                    <PagerStyle BackColor="black" ForeColor="White" HorizontalAlign="Center" />
                    <SelectedRowStyle BackColor="#c0c0e0" Font-Bold="True" ForeColor="#333333" />
                    <HeaderStyle BackColor="#000000" Font-Bold="True" ForeColor="#eeeeee" />
                    <EditRowStyle BackColor="#2461BF" />
                    <AlternatingRowStyle BackColor="White" />
                </asp:GridView>

<asp:FormView ID="FormView1" runat="server" DefaultMode="Edit" DataSourceID="courseinfo2"
                DataKeyNames="prefix,course_number" Width="100%">

Конечно, представление формы завершено, но оно содержит много кода, поэтому я не включил его здесь, хотя, если кто-то захочет его увидеть, я могу опубликовать его.*

1 Ответ

0 голосов
/ 13 июня 2011

Вы можете изменить свои параметры управления следующим образом, поскольку у вас есть несколько datakeynames, вы не можете выбрать значение как свойство обоих.Это должно работать однако:

    <asp:ControlParameter Name="prefix" ControlID="GridView1" PropertyName="SelectedDataKey.Values[prefix]" Type="String"  />
    <asp:ControlParameter Name="course_number" ControlID="GridView1" PropertyName="SelectedDataKey.Values[course_number]" Type="Int32" />
...