我的母版页中有一个下拉列表,我的一个内容页面中有一个gridview。我想做某事......
select * from table where ID=@ID
对于参数@ID,我希望它来自母版页的下拉列表。我想知道如何实现这一目标? 非常感谢您的建议!
答案 0 :(得分:1)
使用以下代码查找页面页面加载事件的下拉列表。
DropDownlist dropDownlist = (DropDownlist)this.Master.FindControl("YourDropDownId");
if(dropDownlist !=null)
{
int Id =Convert.ToInt32(dropDownList.SelectedValue);
//Write your grid binding logic here
}
在查询中使用该ID。
答案 1 :(得分:0)
好吧,从内存开始,你可以在你的母版页上创建一个返回DropDownList控件的SelectedValue的公共属性。然后在您的子页面中,您可以引用子页面的Page.Master属性。将该页面转换为您的母版页的类型,然后您就可以引用该属性。
var ddlVal = (Page.Master as WhateverMyMasterPageClass).MyPublicProperty;
(那是C#,但也许你得到了照片。)
答案 2 :(得分:0)
要展开@maelstrom
答案,您需要这样做:
在后面的主代码中
public string DropDownValue
{
get {
return this. dropDownlist.selectedValue;
}
set {
this.dropDownlist.selectedValue= value;
}
}
获取值
var myMaster = this.Master as YourMasterType;
if(myMaster != null)
{
var Id = myMaster.DropDownValue;
}
答案 3 :(得分:0)
感谢您的所有建议!他们非常乐于助人!我是C#甚至VB的新手。我的主人有vb代码 受保护的子Button1_Click(ByVal sender As Object,ByVal e As System.EventArgs)处理Button1.Click
Dim Selection As String = Nothing
If Not DropDownList3.SelectedValue Is Nothing Then Selection = DropDownList3.SelectedValue
Session("Selected") = Selection
End Sub
所以在我的asp内容中,我发现我可以手动将源设置为会话变量 - 会话("选择"),比如说 asp:SessionParameter Name =" id" SessionField ="选择" 它有效。