解决方案 »
- xmlReader.NodeType case语句后面的属性值 有中文的解释吗?
- 页面如何让其全屏显示
- 新手关于Response.Write()使用Html角本求答
- 异常详细信息: System.InvalidOperationException: ConnectionString 属性尚未初始化
- 能不能在网页上做个超连接打开程序呀??
- 有没有知道错在哪的?高手都到哪里去了???
- .net中有类似java的DWR东西吗
- 能不能用DataSet实现数据的成批添加、删除、修改
- 起怪的问题!大家来看一看!
- 求sql2000下工作流的實現
- .net里面上传大一点的图片后 点击保存按钮只存了图片路径 为什么也慢
- asp连sql默认实例及命名实例对用户,密码的要求是否有区别?
http://www.cnblogs.com/insus/archive/2012/09/25/2700939.html
http://www.cnblogs.com/insus/p/3207936.html
{
private string menu_id="0";
public string Menu_Id
{
get { return menu_id; }
set { menu_id = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
string s = Menu_Id;
Cms.BLL.Links bll = new Cms.BLL.Links();
Cms.Model.Links model = new Cms.Model.Links();
DataSet dt = bll.GetList("IsImage=" + Convert.ToInt32(Menu_Id));
rptlist1.DataSource = dt.Tables[0].DefaultView;
rptlist1.DataBind();
}有自定义控件Top.ascx 的母版页前台代码
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Manager.master.cs" Inherits="Cms.Web.Manager" %><%@ Register src="Controls/Top.ascx" tagname="Top" tagprefix="uc1" %><%@ Register src="Controls/Footer.ascx" tagname="Footer" tagprefix="uc2" %>
<form id="form1" runat="server">
<!--Logo.Start-->
<uc1:Top ID="Header" runat="server" />
<!--Logo.End-->
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
内容页
</asp:ContentPlaceHolder>
<!-- Footer.Start -->
<uc2:Footer ID="Footer" runat="server" />
<!-- Footer.Start -->
</form>继承了母版页的子页面前台代码
<%@ Page Title="" Language="C#" MasterPageFile="~/Manager.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="Cms.Web.About" %><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"></asp:Content>
继承了母版页的子页面后台代码 public int menu_id; //全局变量Id
public string StrTitle = "";
public string StrContent = "";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Cms.BLL.Contents bll = new Cms.BLL.Contents();
Cms.Model.Contents model = bll.GetModel(1); // Session["menu_id"] = 1;
// Response.Redirect("Top.ascx");
// Session int id = 1;
// FindControl("ContentPlaceHolder1") menu_id.ToString()="1";
// this.ContentPlaceHolder1.FindControl("Top").
StrTitle = model.Title;
StrContent = Cms.Common.Utils.ToTxt(model.Content);
}问题三,用session 如何向母版页上的自定义控件传值?
{
Unit unit{get;set;}
}
任何一个控件如果需要外界传递给它组织架构(好在其内部利用这个数据,例如产生顶层菜单),都可以使用这个接口。例如你的母板页可能就是public partial class MyMasterPage : System.Web.UI.MasterPage, I传递组织架构的值
{
public Unit unit
{
get
{
EnsureChildControls();
.......
}
set
{
EnsureChildControls();
.......
}
} .......这样,你的内容页不用等母板页是否做好,就可以按照接口进行编程。例如写 Unit data = BLL.获取顶层组织架构();
var master = (I传递组织架构的值)this.Master;
master.unit = data;这样就是传递这个值(是一个自定义对象)给母板页。
母板页与top.ascx的关系也是如此。你的top.ascx的代码可以使用这个接口,然后由上面的setter方法中直接给它复制。原则是——信息对外是只暴露接口的。top.ascx内部是如何实现的,与母板页无关,母板页不能想当然地去处理top.ascx内部的控件。同样,内容页也不能想当然地去整什么 textBox1 控件。
软件之所以成为工程,是有它的道理的。你把那些垃圾的做法去掉一半,就会顺利地开发下去。反之如果你你没有这些知识,可能很快就陷入到泥沼中,你的代码连自己的懒得维护,更别提原本(内部屏蔽的部分)要快速重构了。
{
var x = ......;
调用方法2(x);
.......
}
你现在只想设计方法“内部”的参数传递机制,你因为不知道这个参数x如何定义,有人跟你说“你定义一个private static 的全局静态变量来为方法2传递参数,这种“毁三观”的做法在你只会做一点小程序混日子的时候可能觉得“也不错,可以达到效果”。但是它其实理解起来更加诡异,而且很容易就会有严重的问题显现出来。