Tag: 回发

用户控件事件处理程序在回发时丢失

我有一个名为LeftMenu的菜单usercontrol,它有一个项目符号列表。 它位于ascx页面上: 我在if(!isPostBack)下的page_load中数据绑定列表 我在加载控件的页面上遇到问题。 首次加载页面时,事件处理程序将触发。 但是,当页面回发它不再触发时,在IE8中,当我调试时,我在Visual Studio中得到“Microsoft JScript运行时错误:对象预期”指向“__doPostBack(’LeftMenu $ PublisherList’,’0’) “。 在FF我没有得到错误,但没有任何反应。 我没有动态加载控件,它使用以下命令加载到aspx页面: 我失去事件处理程序的任何想法? 我刚刚意识到这也发生在我拥有的另一个用户控件上。 一个文本框和一个按钮,我正在使用默认按钮,以确保按Enter键使用该按钮。 .Net将html中的内容转换为: 所以当我在框中输入一个键时,我会在“预期的对象”行中收到一个javascript错误。 似乎这两个问题是相关的。 再次编辑:我想我需要澄清一下。 这不是我点击菜单项,它无法在回发中找到所选项目。 我有这个搜索页面,左侧导航,然后页面的主要内容是导致回发的东西。 这个回发一切都很好。 一旦该页面被回发,现在如果我点击左侧导航中的项目符号列表,我会收到一个javascript错误,但它失败了。 永远不会调用LeftMenu控件的page_init。

Page.IsPostBack的安全实现?

根据我之前的问题 ,ASP.net的默认Page.IsPostBack实现是否安全(它不是;它可以伪造…… HTTP动词甚至不必是POST!),我在想; 肯定有一个更好的方法来实现它? 我们能否提出一个Page.IsPostBack实现,当它成立时,几乎可以保证表明该页面是一个真正的ASP.net回发? 如果一个人只想进行一次安全检查(比如某些内容是否会根据用户的角色出现),并且只有在我们不处理ASP.net回发时才这样做,这一点很重要。 我对如何执行此操作的第一个想法是在属性中实现检查代码,因此我可以在Page_Load编写类似这样的内容: if (!_isPostBack) { // Do security check if (userIsNotAuthorized) { btnViewReports.Visible = false; btnEditDetails.Visible = false; // etc. } } 有没有办法安全地实现_isPostBack ? 也许在ViewState中存储一些很难或不可能进行简单假冒回传的内容? 随机字符串?

基类包括字段但类型与控件类型不兼容

The base class includes the field ‘lbl’, but its type (web.App_Code.CustomLabelControl) is not compatible with the type of control (web.App_Code.CustomLabelControl). 我以同样的方式做了很多自定义控件,但地狱这个错误让我疯了。 我有一个Web应用程序项目,在App_Code目录中具有以下类,在web.config中为类中的控件提供了tagprefix引用。 现在我该怎么做? Web.Config中 … 标记 类文件 namespace web.App_Code { public class CustomLabelControl : Control, IPostBackEventHandler, IPostBackDataHandler { private string _onClickText; public CustomLabelControl() { } public string OnClickText { get { return _onClickText; } set […]

ASP.Net Button没有提高回发

我在我们的一个Web应用程序中有一个简单的页面,它有以下标记: Document Mass Upload Add New Upload Local File: Document Description: Document Type: Customer Types:   它用于工作正常,但现在,并且没有明显的代码/设计更改,“上传”和“取消”按钮都不再有效。 在代码隐藏的Page_Load()方法中放置一个断点,表明它只在最初加载页面时调用,而不是在按下按钮时调用。 同样,在“BtnUpload_Click”事件中放置一个断点表明它永远不会被调用。 现在,这在我自己的开发机器和客户端服务器上都不起作用(从我的机器和服务器本身浏览到服务器页面时)。 重要的是要强调,在这个工作和现在不工作之间,我90%确定在代码方面没有任何改变。 任何帮助都会非常感激,因为顾客是正确的焦虑 – 而且我对导致它的原因一无所知! 编辑#1 这是其中一个按钮的代码隐藏: protected void BtnUpload_Click(object sender, EventArgs e) { if (DataAccess.CheckIfMassUploadAlreadyExists(fuFilename.FileName)) { lblError.Text = “A file with the specified name already exists within the system.”; return; } else { try { […]

在与ASP.Net中的搜索控件相同的页面上显示搜索结果的最佳方法

我在页面上有两个控件,一个是搜索条目和提交控件,另一个是搜索结果控件,由于站点的布局,它们必须分开。 我正在寻找不同的方式让搜索控件提交在结果控件中显示搜索结果,最初我不打扰回发,我更加困扰两件事 1)如何将选定的搜索词传递回同一页面(或实际上传递给显示结果的控件)QUerystring,hiddenfield,session,viewstate(有效隐藏字段)? 2)我如何实际让页面提交给自己。 道歉,如果这有点基础,但我不是ASP.Net专家

IPostbackEventHandler VS IPostbackDataHandler

1)用户在DropDownList中选择项目被认为是回发数据,因此DropDownList实现IPostbackDataHandler 。 a)但是为什么用户移动(在Calendar控件中)到另一个月也没有被认为是回发数据? 那么,为什么Calendar实现IPostbackEventHandler而不是IPostbackDataHandler呢? 2) a)我假设实现IPostbackEventHandler而不是IPostbackDataHandler的控件永远不会收到回发数据? b)如果控件实现了IPostbackDataHandler ,那么每次数据更改时都会触发控件的回发事件,即使该控件没有引发回发 但是如果控件实现了IPostbackEventHandler ,那么只有控件的回发事件会被引发的时间是该控件是否也触发了回发?

如何从ASP.Net发布然后重定向到外部URL?

ASP.NET服务器端控件回发到他们自己的页面。 这使得您希望将用户重定向到外部页面的情况,但由于某种原因(例如,用于身份validation)需要发布到该页面是一种痛苦。 如果你不想重定向, HttpWebRequest工作得很好,并且在某些情况下JavaScript很好,但是如果你确实需要服务器端代码来为post获取数据,那么它会变得棘手。 那么你们如何发布外部URL并将用户重定向到ASP.NET代码隐藏代码的结果?

使用Updatepanel的AsyncTask?

哟,我创建了一个WebProject来测试是否可以创建一个asyncTask来更新Progressbar: public partial class AsyncTest : System.Web.UI.Page { private String _taskprogress; private AsyncTaskDelegate _dlgt; protected delegate void AsyncTaskDelegate(); protected void Page_Load(object sender, EventArgs e) { } public String GetAsyncTaskProgress() { return _taskprogress; } public IAsyncResult OnBegin(object sender, EventArgs e, AsyncCallback cb, object extraData) { _taskprogress = “AsyncTask started at: ” + DateTime.Now + “. “; […]

PostBack期间GridView.DataSource为null

我想在我的应用程序中从每个Gridview实现打印/下载csv。 那些通过Datasources或直接获取数据 gvSample.DataSource = Data; gvSample.DataBind(); 现在我的第一种方法是将下载按钮设置为页脚模板并在那里处理下载 和 protected void dl_Click(object sender, ImageClickEventArgs e) { GridView gv = (GridView)this.Parent.Parent.Parent.Parent; string csv = ToCSV(gv.DataSource); //gv.DataSource is null, DatasourceID aswell Response.ContentType = “application/csv”; Response.AddHeader(“content-disposition”, “attachment; filename=file.csv”); Response.Write(csv); Response.End(); } 但我无法访问数据。

在回发时维护滚动位置和选定控件

回到另一个基于Web的问题。 当控件向服务器发出回发时,页面刷新(精细)。 该页面也会滚动回到顶部并失去所选的控件。 如果它在回发后相关,取决于发生了什么变化,控件会变得可见或隐藏。 即使在页面可见性方面没有任何改变,焦点也会丢失并且当前滚动重置。 保留在文本字段中输入的数据,以及任何单选按钮/复选框选择。 问题是tabbing被重置为索引0并且页面滚动被发送回页面顶部。 我使用的是.Net 4.0 我尝试在asp页面本身和web.config中添加MaintainScrollPositionOnPostback =“true”都无济于事。 我已尝试使用和不使用Ajax updatepanel使用条件更新触发关闭文本框文本更改或radiobuttons更改并且回发仍然导致滚动和索引丢失。 任何想法都会很棒。 TA!