asp.net 疑难问题求解

asp.net 疑难问题求解,第1张

双击控件中的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控件的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9632320.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存