母版页多个ContentPlaceHolder间控件通讯问题

chenguofeng 2011-02-20 11:31:38
我定义了一个母版页,有两个ContentPlaceHolder。在第一个ContentPlaceHolder中纺织了一个DropDownList控件,在第二个里边防治了一个gridview和一个objectdatasource控件。目的是想通过 dropdownlist控件给objectdatasource传递参数,进而更新gridview中的数据。页面aspx代码如下:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="server">
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
</asp:DropDownList>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" CssClass="datatab"
AutoGenerateColumns="False" DataSourceID="ObjectDataSource1"
DataKeyNames="id">
......
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
DeleteMethod="Delete" SelectMethod="Get" TypeName="Spark.DAL.Users">
<DeleteParameters>
<asp:Parameter Name="id" Type="String" />
</DeleteParameters>
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" DefaultValue="" Name="ked"
PropertyName="SelectedValue" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>

</asp:Content>

但在运行是,却提示:未能在 ControlParameter“ked”中找到控件“DropDownList1”。求解。
...全文
379 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyq110120119 2011-07-02
  • 打赏
  • 举报
回复
楼主,我的母板页不能用两个ContentPlaceHolder,可能是什么原因呢?
wuyq11 2011-02-20
  • 打赏
  • 举报
回复
先查找控件,再动态查询绑定数据
Dropdownlist ddl= Master.FindControl("ContentPlaceHolder1"). FindControl("Dropdownlist1") as Dropdownlist;
子夜__ 2011-02-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 chenguofeng 的回复:]

楼上的,不是这个意思啊。我现在的问题是放在ContentPlaceHolder1中的ObjectDataSource找不到放置在ContentPlaceHolder2上的DropDownList控件哦
[/Quote]

那就用笨方法吧 Content2把值传给母版页 然后Content3从母版页取值。。。


在母版页声明个变量 A

获取母版页上文本框的值赋给内容页的文本框
A = (Master.FindControl("Dropdownlist1") as Dropdownlist).SelsectValue;

获取内容页上文本框的值赋给母版页的文本框
A = (ContentPlaceHolder1.FindControl("Dropdownlist1") as Dropdownlist).SelsectValue;
chenguofeng 2011-02-20
  • 打赏
  • 举报
回复
楼上的,不是这个意思啊。我现在的问题是放在ContentPlaceHolder1中的ObjectDataSource找不到放置在ContentPlaceHolder2上的DropDownList控件哦
子夜__ 2011-02-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chenguofeng 的回复:]

引用 2 楼 wxr0323 的回复:
[code=H] <SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" DefaultValue="" Name="ked"
PropertyName="SelectedValue" Type="String" />
</SelectParameters>

<……
[/Quote]

连同GRIDVIEW一起移到下面。
wuyq11 2011-02-20
  • 打赏
  • 举报
回复
SelectCommand= "SELECT * FROM [Tb] WHERE ([id] = @id) ">
<SelectParameters>
<asp:ControlParameter ControlID= "DropDownList1 " DefaultValue= "1 " Name= "id " PropertyName= "SelectedValue "
Type= "string" />
</SelectParameters>
http://topic.csdn.net/u/20110114/15/36a15000-b639-4373-8e0c-77c2cbda5826.html
chenguofeng 2011-02-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wxr0323 的回复:]
[code=HT] <SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" DefaultValue="" Name="ked"
PropertyName="SelectedValue" Type="String" />
</SelectParameters>

<asp:ObjectDataS……
[/Quote]
这样gridview就找不到datasource了
子夜__ 2011-02-20
  • 打赏
  • 举报
回复
[code=HTM] <SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" DefaultValue="" Name="ked"
PropertyName="SelectedValue" Type="String" />
</SelectParameters>

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
DeleteMethod="Delete" SelectMethod="Get" TypeName="Spark.DAL.Users">
<DeleteParameters>
<asp:Parameter Name="id" Type="String" />
</DeleteParameters>
</asp:ObjectDataSource>
</asp:Content>[/code]

改成这样看如何。

把ObjectDataSource 放到dropdownlist的后面
自然框架 2011-02-20
  • 打赏
  • 举报
回复
帮你顶一下。
试一试findcontrol

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧