首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ControlParameter 'y‘中找不到控制'x’

在ControlParameter 'y‘中找不到控制'x’
EN

Stack Overflow用户
提问于 2012-11-28 17:12:38
回答 2查看 7.8K关注 0票数 5

我正在尝试使用列表下拉列表来过滤结果。

我修改了数据源的select查询如下.

列表视图:

代码语言:javascript
复制
<asp:AccessDataSource ID="AccessDataSource1" runat="server" 
        DataFile="~/App_Data/ASPNetDB.mdb" 
        SelectCommand="SELECT * FROM [tblNames] WHERE Surnames=@Surnames">
        <SelectParameters>
            <asp:ControlParameter ControlID="DropDownList1" Name="Surnames" 
                PropertyName="SelectedValue" />
        </SelectParameters>
    </asp:AccessDataSource>

下拉列表:

代码语言:javascript
复制
<asp:DropDownList ID="DropDownList1" runat="server" 
        DataSourceID="AccessDataSource2" DataTextField="Genre" 
        DataValueField="NameID" AppendDataBoundItems="true">
            <asp:ListItem Value="" Selected ="True" >All Surnames</asp:ListItem>
</asp:DropDownList>

    <asp:AccessDataSource ID="AccessDataSource2" runat="server" 
        DataFile="~/App_Data/ASPNetDB.mdb" SelectCommand="SELECT * FROM [tblSurnames]">
    </asp:AccessDataSource>

使用了正确的控件名称(同样的大写),但是加载页面返回,无法在ControlParameter‘姓氏’中找到控件'DropDownList1‘。

对我做错了什么有什么建议吗?

编辑:这是堆栈跟踪,如果它有助于

代码语言:javascript
复制
[InvalidOperationException: Could not find control 'DropDownList1' in ControlParameter 'Surname'.]
   System.Web.UI.WebControls.ControlParameter.Evaluate(HttpContext context, Control control) +2107838
   System.Web.UI.WebControls.Parameter.UpdateValue(HttpContext context, Control control) +50
   System.Web.UI.WebControls.ParameterCollection.UpdateValues(HttpContext context, Control control) +113
   System.Web.UI.WebControls.SqlDataSource.LoadCompleteEventHandler(Object sender, EventArgs e) +46
   System.EventHandler.Invoke(Object sender, EventArgs e) +0
   System.Web.UI.Page.OnLoadComplete(EventArgs e) +9010786
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2350
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-29 17:41:49

ControlID需要以包含DropDownList的ContentPlaceHolder的ID作为前缀:

代码语言:javascript
复制
<asp:ControlParameter 
   Name="Surnames" 
   ControlID="ContentPlaceholderID$DropDownList1" 
   PropertyName="SelectedValue" 
/>

另见:https://stackoverflow.com/a/5719348/124386

票数 8
EN

Stack Overflow用户

发布于 2017-07-10 19:07:25

此外,确保您的兴趣控制有runat=“服务器”。啊。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13610683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档