我遇到问题,需要帮助,我有SqlDataSource
的网格视图绑定:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource2">
<Columns>
<asp:CommandField ShowEditButton="true" />
<asp:BoundField DataField="DateOpened" HeaderText="DateOpened"
SortExpression="DateOpened" />
<asp:BoundField DataField="rName" HeaderText="rName" SortExpression="rName" />
<asp:BoundField DataField="DateOfArrival" HeaderText="DateOfArrival"
SortExpression="DateOfArrival"/>
<asp:BoundField DataField="Quantity" HeaderText="Quantity"
SortExpression="Quantity"/>
<asp:BoundField DataField="sName" HeaderText="sName" SortExpression="sName" />
<asp:TemplateField HeaderText="osName" SortExpression="osName">
<EditItemTemplate>
<asp:DropDownList runat="server" ID="OrderStatusDDL">
<asp:ListItem>הוזמן</asp:ListItem>
<asp:ListItem>מתעכב</asp:ListItem>
<asp:ListItem>התקבל</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("osName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
SqlDataSource
:
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:igroup9_test1ConnectionString %>"
SelectCommand="spGetOrdersListForProject"
SelectCommandType="StoredProcedure" UpdateCommandType="StoredProcedure" UpdateCommand="spUpdateOrderStatus" >
<SelectParameters>
<asp:ControlParameter ControlID="ProjectIDHolder" DefaultValue=""
Name="ProjectID" PropertyName="Text" Type="Int32" />
</SelectParameters>
<UpdateParameters>
<asp:ControlParameter ControlID="ProjectIDHolder" DefaultValue=""
Name="@projectid" PropertyName="Text" Type="Int32" />
<asp:ControlParameter Name="@osID" PropertyName="Text" Type="Int32"
ControlID="OrderStatusDDL" />
</UpdateParameters>
</asp:SqlDataSource>
我想修改osName
列,当我按下Edit
按钮并尝试从下拉列表中选择其他值时,我想更新osId
({{1 }})在数据库中,但我收到此错误:
无法找到控件&#39; OrderStatusDDL&#39;在ControlParameter&#39; @ osID&#39;。
答案 0 :(得分:0)
网页上的GridView是否使用了MasterPage?如果是,则需要在控件前添加ContentPlaceHolder
的ID。
<asp:ControlParameter Name="@osID" PropertyName="Text" Type="Int32"
ControlID="ContentPlaceholderID$OrderStatusDDL" />
答案 1 :(得分:0)
看起来您正在尝试将OrderStatusDDL.SelectedValue的文本值传递到int字段中。尝试将Type更改为字符串,看看是否有帮助。
<asp:ControlParameter Name="@osID" PropertyName="Text" Type="String" ControlID="OrderStatusDDL" />
我不知道这是否会有所帮助,但它可能是一个好的起点。