gpt4 book ai didi

c# - ASP.NET 在参数 ControlParameter 中找不到对象

转载 作者:太空宇宙 更新时间:2023-11-03 12:44:49 31 4
gpt4 key购买 nike

我正在尝试从 DropDownList 获取值作为 SQL 查询的参数。我有一个 GridView 和 SqlDataSource。而且我无法在 GridView 中访问 DropDownList ("DDLName")。当“DDLName”位于 GridView 外部时,一切正常,但当我将其放入 GridView 时,出现错误,提示找不到“DDLName”。我想在 .aspx 中执行此操作。我看过很多关于使用“$”的提示,但我试图使用“GridView1$DDLName”,但它不起作用。

这是我的代码:

     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="SqlDataSource2" AutoGenerateEditButton="True" ShowFooter="True">
<Columns>
<asp:BoundField DataField="id" HeaderText="id" ReadOnly="True" SortExpression="id" />
<asp:BoundField DataField="firstname" HeaderText="firstname" SortExpression="firstname" />
<asp:BoundField DataField="lastname" HeaderText="lastname" SortExpression="lastname" />
<asp:TemplateField HeaderText="city">
<ItemTemplate>
<asp:Label ID = "LabelName" runat="server" Text='<%# Eval("name") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID = "DDLName" runat="server" DataSourceID="DDLSource" DataTextField="name" ClientIDMode="Static"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

<asp:SqlDataSource ID="DDLSource" runat="server" ConnectionString="<%$ ConnectionStrings:MBase1ConnectionString %>" SelectCommand="SELECT [name] FROM [cities]">
</asp:SqlDataSource>

<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:MBase1ConnectionString %>" SelectCommand="users_select_all_city" SelectCommandType="StoredProcedure" UpdateCommand="users_update_city" UpdateCommandType="StoredProcedure" DeleteCommand="users_delete" DeleteCommandType="StoredProcedure" InsertCommand="users_add" InsertCommandType="StoredProcedure">
<DeleteParameters>
<asp:Parameter Name="id" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="id" Type="Int32" />
<asp:Parameter Name="firstName" Type="String" />
<asp:Parameter Name="lastName" Type="String" />
<asp:Parameter Name="name" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="id" Type="Int32" />
<asp:Parameter Name="firstName" Type="String" />
<asp:Parameter Name="lastName" Type="String" />
<asp:ControlParameter ControlId="DDLName" Name="name" PropertyName="SelectedValue" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>

最佳答案

好问题。我花了几个小时才解决这个问题,但我做对了。您需要进行两项更改。

1) 将您的下拉菜单更改为如下所示:

<asp:DropDownList ID="DDLName" runat="server" 
DataSourceID="DDLSource"
DataTextField="name"
DataValueField="name"
SelectedValue='<%# Bind("name") %>'>
</asp:DropDownList>

2) 替换这一行:

<asp:ControlParameter ControlId="DDLName" Name="name" PropertyName="SelectedValue" Type="String" />

有了这个:

<asp:Parameter Name="name" Type="String" />

关于c# - ASP.NET 在参数 ControlParameter 中找不到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37691207/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com