Я пытаюсь скопировать привязку в моей разметке с чем-то программным.
Кажется, я вынужден использовать набор данных для привязки, а не SqlDataSource, как показано в моей разметке.
Кроме того, при использовании набора данных я внезапно теряю разбиение на страницы, сортировку и т. Д. И получаю ошибки, которые мне необходимо обработать вручную.
Они были обработаны автоматически раньше
Так вот моя разметка:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="True"
CellPadding="4" DataSourceID="SqlDataSource1" ForeColor="#333333"
GridLines="None" AllowPaging="True" AllowSorting="True" Width="520px">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:NORTHWNDConnectionString %>"
SelectCommand="CustOrdersOrders" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter Direction="ReturnValue" Name="RETURN_VALUE" Type="Int32" />
<asp:ControlParameter ControlID="txtCustId" DefaultValue="AROUT"
Name="CustomerID" PropertyName="Text" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
Я заменил его на что-то вроде этого:
SqlDataAdapter adapter = new SqlDataAdapter();
conn.Open();
using (SqlConnection conn = new SqlConnection(connStr))
{
SqlDataAdapter adapter = new SqlDataAdapter();
conn.Open();
using (SqlCommand cmd = new SqlCommand("CustOrdersOrders", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("CustomerID", "AROUT");
cmd.ExecuteScalar();
adapter.SelectCommand = cmd;
}
GridView1.DataSource = adapter;
GridView1.DataBind();
}
Это, конечно, приводит к ошибке, что источник данных имеет неправильный тип, но это именно то, что делает разметка.
Единственное, о чем я могу думать, это то, что он использует DataSource вместо DataSourceID .
Итак, как мне реплицировать эту разметку и получать всю сортировку и подкачку автоматически?
Если мне нужно использовать набор данных, почему разметка не требует его?
Но даже с набором данных он, кажется, не обрабатывает подкачку и сортировку автоматически, как я сказал.
Спасибо!
Леви