У меня есть идентификатор заказа на продажу, который мне нужен в качестве параметра SelectParameter для моего GridView заказанных продуктов, поэтому я сохраняю его в скрытом поле (вне GridView). На той же странице я добавляю продукты в этот заказ, а затем заново привязываю GridView, чтобы включить этот продукт. Значение моего параметра каждый раз равно нулю, поэтому я не думаю, что он получает значение из скрытого поля. Я думал о том, чтобы сохранить его в ViewState, но не думаю, что вы можете получить значение ViewState из GridView SelectParameter или можете? В любом случае, если кто-нибудь скажет мне, почему использование значения hiddenfield вне GridView не сработает (оно все еще в форме), это было бы потрясающе! Кроме того, я хотел бы иметь возможность использовать ViewState, поэтому мне нужно знать, каким будет мой код SelectParameter. Код следующим образом:
<form id="form1" runat="server">
<asp:HiddenField ID="hSOId" runat="server" />
<div>
<div class="row">
<div class="col-md-12">
<strong>Products:</strong>
<asp:GridView ID="gvOptions" runat="server" AutoGenerateColumns="False" CellPadding="10" CellSpacing="10" DataSourceID="SqlDataSource1"
ForeColor="#333333" GridLines="None" EmptyDataText="No Products Added" >
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField DataField="Internal_Name" HeaderText="Product" SortExpression="Internal_Name" />
<asp:BoundField DataField="Qty" HeaderText="Qty" SortExpression="Qty" />
<asp:BoundField DataField="Total_Kilo_Weight" HeaderText="Weight" SortExpression="Total_Kilo_Weight" />
<asp:BoundField DataField="Sales_Price" HeaderText="Price" SortExpression="Sales_Price" />
<asp:BoundField DataField="ProfitMargin" HeaderText="Profit" SortExpression="ProfitMargin" />
<asp:BoundField DataField="Co_Depot" HeaderText="Depot" SortExpression="Co_Depot" />
<asp:BoundField DataField="Pack_Date" HeaderText="Pack Date" DataFormatString="{0:d}" SortExpression="Pack_Date" />
<asp:BoundField DataField="Delivery_Date" HeaderText="Delivery Date" DataFormatString="{0:d}" SortExpression="Delivery_Date" />
</Columns>
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyConn %>"
SelectCommand="spSalesOrderProductsRead" SelectCommandType="StoredProcedure" OnSelecting="gvOptions_Selecting">
<SelectParameters>
<asp:FormParameter FormField="hSOId" Name="SalesOrderID" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
</div><!-- end of column -->
</div><!-- end of row -->
</div>
</form>