
双击控件中的button,然后写
protected void Button1_Click(object sender, EventArgs e)
{
TextBox t= (TextBox)PageFindControl("TextBox1");
tText = "ddd";
}
private bool powerResult;
public bool PowerResult
这两个名字冲突了
//验证权限并返回结果
这里面对PowerResult赋值了吗
bool默认是false
第一步,把你的headascx中的lable改为public(如果你用的是2008的话,应该在headascxdesignercs这个文件里)
第二步,在main中就可以直接调用了,比如:
string str = thishead1lblText;
ResponseWrite(str);
以上假定你的label的ID为lbl
在母版页中可以通过在ContentPlaceHolder控件中调用FindControl方法来取得控件,然后对控件进行 *** 作。
1母版页中:
public void SetLabel(string str)
{
((label)thisContentPlaceHolder1FindControl("lblContent"))Text = str;
}
ascx文件;
protected void Button1_Click(object sender, EventArgs e)
{
SystemWebUIPage p = thisPage;
Type pageType = pGetType();
MethodInfo mi = pageTypeGetMethod("SetLabel");
miInvoke(p, new object[] {thistextbox1text});
}
btw 这种控件指挥父页面的方法其实是非常糟糕的耦合
设计中的好莱坞原则(不要给我打电话,我会打电话给你们)强调高层对低层的主动作用,即低层应该只管好自己的工作(具体实现),而高层自有它自己的工作(这就是管理低层的逻辑们,或者说从client到具体实现的一系列中间逻辑),在不需要到某个低层的时候,高层并不会调用到这个具体低层,低层永远不需要向高层作出表示,,说它需要被调用,,(即在所有的处于使用者与现有代码的中间的,用于隔离和解偶二者的,那些中间逻辑中,低层逻辑永远不要涉入高层的实现,而只要高层通过某个逻辑去涉入低层的实现,也即低层应不要调用高层,只有高层才会去调用低层,这才是合理的,我们应尽量避免向上调用和相互调用)
当然,偶尔采用也是无可厚非的,但是次数多就该考虑是不是设计有问题,这可能给后面的维护带来隐患
如果你是用windowopen()d出B页面的话,用windowopener就可以了。
比如在B面设定A页面的TEXTBOX1的值为xyz
则windowopenerdocumentgetElementById("TextBox1")innerText="xyz"
以上全是JS代码
母板页:取值((Label)MasterFindControl("labelmaster"))Text;
赋值 ((Label)MasterFindControl("labelmaster"))Text="456";
用户控件:赋值((Label)uctopFindControl("labeltop"))Text = "123";
取值((Label)uctopFindControl("labeltop"))Text;
母版页的用户控件: 赋值((Label)((UserControl)MasterFindControl("uctop"))FindControl("labelmu"))Text = "uuuuu";
取值((Label)((UserControl)MasterFindControl("uctop"))FindControl("labelmu"))Text
总结的一些方法 希望对楼主有帮助
一、使用Querystring
Querystring是一种非常简单的传值方式,其缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象。如果你想传递一个安全性不是那么太重要或者是一个简单的数值时,用此方法最好不过了。下面通过一个小例子来完成传值工作,步骤如下:
1、创建一个web form
2、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2
3、为button按钮创建click事件
代码如下:
private void Button1_Click(object sender, SystemEventArgs e)
{
string url;
url="webform2aspxname=" + TextBox1Text + "&email=" + TextBox2Text;
ResponseRedirect(url);
}
4、新建一个目标页面命名为webform2
5、在webform2中放置两个Label1,Label2
在webform2的Page_Load中添加如下代码:
private void Page_Load(object sender, SystemEventArgs e)
{
Label1Text=RequestQueryString["name"];
Label2Text=RequestQueryString["email"];
}
运行,即可看到传递后的结果了。
这种方法得缺点是:
1:一般来说这种方法通常使用来传递明码参数,也就是不需要保密得参数,同时在使用querystring传值得时候不能传递对象,参数的长度不能大于1024字节(?),当参数中有中文得时候,通常需要使用>
1打开VS2008-新建一个工程-选译ASP。NET服务器控件
2自动生成一个文件,打代码拷进去,调试好程序
3点击“生成菜单-生成XX”
4到 工程目录\bin\Debug 找到dll文件把它拷到一个固定目录里如:DotNet_DLL里
============附带一个我重写Repeater的代码===================
using System;
using SystemCollectionsGeneric;
using SystemComponentModel;
using SystemLinq;
using SystemText;
using SystemWeb;
using SystemWebUI;
using SystemWebUIWebControls;
using SystemData;
using SystemDataSqlClient;
using SystemDataOleDb;
namespace lwf_MVClwf_Controls
{
[DefaultProperty("pageIndex")]
[ToolboxData("<!--Repeater Begin --><:Repeater ID=\"Rep_list\" runat=\"server\" EnableViewState=\"false\" DisplayPageing=\"Always\"> <ItemTemplate> </ItemTemplate> </:Repeater><!--Repeater End -->")]
public class Repeater : SystemWebUIWebControlsRepeater
{
private int _recordcount = 0;
private int _pageSize = 0;
private int _pageIndex = 1;
private string _PID = "";
private string _CssClass = "CssPage"; //输出数据流时设一个样式给它样式名为CssPage
private object _DataSourceList;
private PagedDataSource _pds = new PagedDataSource();
//public bool _DisplayPageing;
public MyEnum _DisplayPageing;
private MyEnumLanguage _Language;
//构造函数
public Repeater()
{
}
#region ____________控件属性:RecordCount、pageSize、pageIndex、PID、CssClass、DataSource1____________
[Bindable(true)]
[Category("data")]
[DefaultValue("1")]
[Localizable(true)]
[Description("记录总数")]
public int RecordCount
{
get
{
return _recordcount;
}
set
{
_recordcount = value;
}
}
[Bindable(true)]
[Category("data")]
[DefaultValue("15")]
[Localizable(true)]
[Description("单页记录数")]
public int pageSize
{
get
{
return _pageSize;
}
set
{
_pageSize = value;
}
}
[Bindable(true)]
[Category("data")]
[DefaultValue("1")]
[Localizable(true)]
[Description("当前页码")]
public int pageIndex
{
get
{
return _pageIndex;
}
set
{
_pageIndex = value;
}
}
[Bindable(true)]
[Category("data")]
[DefaultValue("")]
[Localizable(true)]
[Description("其它参数传递")]
public string PID
{
get
{
return _PID;
}
set
{
_PID = value;
}
}
[Bindable(true)]
[Category("data")]
[DefaultValue("CssPage")]
[Localizable(true)]
[Description("连接样式")]
public string CssClass
{
get
{
return _CssClass;
}
set
{
_CssClass = value;
}
}
[Bindable(true)]
[Category("data")]
[DefaultValue("")]
[Localizable(true)]
[Description("数据源,DataTable")]
public object DataSource1
{
get
{
return _pds;
}
set
{
switch (valueGetType()ToString())
{
case "SystemDataDataTable":
_recordcount = ((DataTable)value)RowsCount;
_pdsDataSource = ((DataTable)value)DefaultView;
break;
case "SystemCollectionsGenericList`1[SystemObject]":
_recordcount = ((List<object>)value)Count;
_pdsDataSource = (List<object>)value;
break;
case "SystemDataSqlClientSqlDataReader":
DataTable i_dt = NormalConvertDataReaderToDataTable((SqlDataReader)value);
_recordcount = i_dtRowsCount;
_pdsDataSource = i_dtDefaultView;
break;
case "SystemDataSqlClientOleDbDataReader":
DataTable i_dtOle = NormalConvertDataReaderToDataTable((OleDbDataReader)value);
_recordcount = i_dtOleRowsCount;
_pdsDataSource = i_dtOleDefaultView;
break;
default:
_recordcount = ((DataTable)value)RowsCount;
_pdsDataSource = ((DataTable)value)DefaultView;
break;
}
_pdsAllowPaging = true;
_pdsPageSize = _pageSize;
_pdsCurrentPageIndex = this_pageIndex - 1;
baseDataSource = _pds;
}
}
public MyEnum DisplayPageing
{
get
set
}
public enum MyEnum
{
Always = 1,
Auto = 2,
Never = 3
}
public MyEnumLanguage Language
{
get
set
}
public enum MyEnumLanguage
{
Chinese = 1,
English = 2
}
#endregion
//外部使用
public string ThePage()
{
string retStr = "";
retStr = thisThePage(_recordcount, _pageSize, _pageIndex, _PID, _CssClass);
return retStr;
}
//分页函数,为输出显示流提供HTML代码
/// <summary>
/// 分页函数
/// </summary>
/// <param name="i_RecordCount">总记录数</param>
/// <param name="i_pageSize">每页记录数</param>
/// <param name="i_pageIndex">当前页数</param>
/// <param name="i_PID">其它参数</param>
/// <param name="i_CssClass">连接样式</param>
/// <returns>HTML代码</returns>
public string ThePage(int i_RecordCount, int i_pagesize, int i_pageIndex, string i_PID, string i_CssClass)
{
int i_Pcount = 0;
int i_StartPageNum;
int i_EndPageNum;
string i_pagerString = "";
string i_pagerString_ENG = "";
i_pagerString = i_pagerString + "<style type=\"text/css\">\nCssPage \naCssPage:hover\n</style>\n";
i_pagerString_ENG = i_pagerString_ENG + "<style type=\"text/css\">\nCssPage \naCssPage:hover\n</style>\n";
if (i_pagesize != 0)
{
i_Pcount = (i_RecordCount / i_pagesize);
i_Pcount = ((i_RecordCount % i_pagesize) != 0 i_Pcount + 1 : i_Pcount);
i_Pcount = (i_Pcount == 0 1 : i_Pcount);
}
if (i_pageIndex <= 0) i_pageIndex = 1;
if (i_pageIndex > i_Pcount) i_pageIndex = i_Pcount;
i_StartPageNum = 1;
while (i_StartPageNum + 10 <= i_pageIndex)
{
i_StartPageNum = i_StartPageNum + 10;
}
i_EndPageNum = i_StartPageNum + 9;
if (i_EndPageNum > i_Pcount) i_EndPageNum = i_Pcount;
i_pagerString = i_pagerString + "<div class='" + i_CssClass + "' style='padding-left:20px;padding-right:20px'>共<b>" + i_Pcount + "</b>页 共有<b>" + i_RecordCount + "</b>记录 第<b>" + i_pageIndex + "</b>页 跳到第 [ ";
if (i_RecordCount <= ConvertToInt32((i_pageIndex) i_pagesize))
{
i_pagerString_ENG = i_pagerString_ENG + "<div class='" + i_CssClass + "' style='padding-left:20px;padding-right:20px;float:right'><div style='float:left;padding-right:60px'>Total " + i_RecordCount + " , " + ((i_pageIndex - 1) i_pagesize + 1) + "-" + i_RecordCount + " of " + i_RecordCount + " Records </div><div style='float:left;padding-left:60px'>";
}
else
{
i_pagerString_ENG = i_pagerString_ENG + "<div class='" + i_CssClass + "' style='padding-left:20px;padding-right:20px;float:right'><div style='float:left;padding-right:60px'>Total " + i_RecordCount + " , " + ((i_pageIndex - 1) i_pagesize + 1) + "-" + ((i_pageIndex) i_pagesize) + " of " + i_RecordCount + " Records </div><div style='float:left;padding-left:60px'>";
}
if (i_pageIndex != 1)
{
//i_pagerString = i_pagerString + "<a class='" + i_CssClass + "' href='" + i_PID + "page=1'> 首页</a> <a class='" + i_CssClass + "' href='" + i_PID + "page=" + (i_pageIndex - 1)ToString() + "'>上一页</a>";
i_pagerString_ENG = i_pagerString_ENG + "<a class='" + i_CssClass + "' href='" + i_PID + "page=1'> First</a> <a class='" + i_CssClass + "' href='" + i_PID + "page=" + (i_pageIndex - 1)ToString() + "'>Prev</a> ";
}
i_pagerString_ENG = i_pagerString_ENG + " [ ";
if (i_StartPageNum > 1)
{
i_pagerString = i_pagerString + "<a class='" + i_CssClass + "' href='" + i_PID + "page=" + (i_StartPageNum - 1)ToString() + "' title='前十页'><font face='webdings'>7</font></a>";
i_pagerString_ENG = i_pagerString_ENG + " <a class='" + i_CssClass + "' href='" + i_PID + "page=" + (i_StartPageNum - 1)ToString() + "' title='Prev Ten'><font face='webdings'>7</font></a>";
}
for (int i_i = i_StartPageNum; i_i <= i_EndPageNum; i_i++)
{
if (i_i != i_pageIndex)
{
i_pagerString = i_pagerString + "<a class='" + i_CssClass + "' href='" + i_PID + "page=" + i_iToString() + "'>" + i_iToString() + "</a> ";
i_pagerString_ENG = i_pagerString_ENG + "<a class='" + i_CssClass + "' href='" + i_PID + "page=" + i_iToString() + "'>" + i_iToString() + "</a> ";
}
else
{
i_pagerString = i_pagerString + "<b><font color=red>" + i_iToString() + "</font></b> ";
i_pagerString_ENG = i_pagerString_ENG + "<b><font color=red>" + i_iToString() + "</font></b> ";
}
}
if (i_EndPageNum < i_Pcount)
{
i_pagerString = i_pagerString + "<a class='" + i_CssClass + "' href='" + i_PID + "page=" + (i_EndPageNum + 1)ToString() + "' title='下十页'><font face='webdings'>8</font></a>";
i_pagerString_ENG = i_pagerString_ENG + "<a class='" + i_CssClass + "' href='" + i_PID + "page=" + (i_EndPageNum + 1)ToString() + "' title='Next Ten'><font face='webdings'>8</font></a>";
}
i_pagerString = i_pagerString + "] 页";
i_pagerString_ENG = i_pagerString_ENG + "] ";
if (i_pageIndex != 1)
{
i_pagerString = i_pagerString + "<a class='" + i_CssClass + "' href='" + i_PID + "page=1'> 首页</a> <a class='" + i_CssClass + "' href='" + i_PID + "page=" + (i_pageIndex - 1)ToString() + "'>上一页</a>";
//i_pagerString_ENG = i_pagerString_ENG + "<a class='" + i_CssClass + "' href='" + i_PID + "page=1'> 首页</a> <a class='" + i_CssClass + "' href='" + i_PID + "page=" + (i_pageIndex - 1)ToString() + "'>上一页</a>";
}
if (i_Pcount != i_pageIndex)
{
i_pagerString = i_pagerString + "<a class='" + i_CssClass + "' href='" + i_PID + "page=" + (i_pageIndex + 1)ToString() + "'> 下一页</a> <a class='" + i_CssClass + "' href='" + i_PID + "page=" + i_Pcount + "'>尾页</a>";
i_pagerString_ENG = i_pagerString_ENG + "<a class='" + i_CssClass + "' href='" + i_PID + "page=" + (i_pageIndex + 1)ToString() + "'> Next</a> <a class='" + i_CssClass + "' href='" + i_PID + "page=" + i_Pcount + "'>End</a>";
}
i_pagerString = i_pagerString + "</div>";
i_pagerString_ENG = i_pagerString_ENG + "</div></div>";
if (_Language == MyEnumLanguageEnglish)
{
return i_pagerString_ENG;
}
else
{
return i_pagerString;
}
}
//将HTML代码加入输出流
protected override void Render(HtmlTextWriter output)
{
baseRender(output);
switch (_DisplayPageing)
{
case MyEnumAlways:
outputWriteLine(ThePage(_recordcount, _pageSize, _pageIndex, _PID, _CssClass));
break;
case MyEnumAuto:
if (_pageSize < _recordcount)
{
outputWriteLine(ThePage(_recordcount, _pageSize, _pageIndex, _PID, _CssClass));
}
else
{
outputWriteLine("");
}
break;
case MyEnumNever:
outputWriteLine("");
break;
}
//if (_DisplayPageing == true) outputWriteLine(ThePage(_recordcount, _pageSize, _pageIndex, _PID, _CssClass));
// outputWriteLine(ThePage(_recordcount, _pageSize, _pageIndex, _PID, _CssClass));
}
}
}
另外,站长团上有产品团购,便宜有保证
以上就是关于asp.net 疑难问题求解全部的内容,包括:asp.net 疑难问题求解、C#里web自定义控件的属性的值无法获取、aspx页面如何调用Web用户控件中的Label控件的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)