Letīs take an usual aspx page, ~/admin/template.aspx
The admin folder allows only "Admin" roles for example.
Now I donīt want to run the template.aspx as usual, but I want it be called from a active process. Letīs say Iīm on ~/admin/buildMyStuff.aspx and there Iīm collecting some data, I now have some querystring, like "?do=this$andDo=that$index={0}". Now I want, using this template, loop through my data and generate my ouput, putting it then for example in a static html or in a text file or something else.
How should I do that? Calling it as new request, waiting for response? What I have to do, that it is running under the "Admin" role, or is it doing it automatically, since I already am admin?
Or is there another possibility, that allows me to run the template page and specifiing my custom htmltextwriter as output?
EDIT:
public static string RenderPageAndGetHtml(string pageUrl, string pageQuery)
{
var sw = new StringWriter();
var wr = new SimpleWorkerRequest(pageUrl, pageQuery, sw);
I have some code that is used to replace certain page output with other text. The way I accomplish this is by setting the Response.Filter to a Stream, Flushing the Response, and then reading that Stream back into a string. From there I can manipulate the string and output the resulting code. You can see the basic code for this over at [URL] However, I noticed that Page Caching no longer works after the first Response.Flush call.
I put together a simple ASP.NET WebApp as an example. I have a Default.aspx with an @OutputCache set for 30 seconds. All this does is output DateTime.Now.ToLongTimeString(). I override Render. If I do a Response.Flush (even after the base.Render) the page does not get cached. This is regardless of any programmatic cacheability that I set. So it seems that Response.Flush completely undermines any page caching in use. Why is this?
extra credit: is there a way to accomplish what I want (render output to a string) that will not result in Page Cache getting bypassed?
I've got two questions - first of all, why does .net render a javascript onclick event for asp buttons when there's a custom validator on the same page, and secondly, how can I get rid of the javascript?
It works fine when javascript is turned off, so I don't know what the point of it is. Here's a mini example:
I am writing an ASP.NET custom control.In my custom control code, I find a PlaceHolder control in the page like so:this.myPlaceholder = Page.FindControl("placeholder1") as PlaceHolder Then, I render the placeholder as the output of the custom control:
protected override void Render(HtmlTextWriter output) if (this.myPlaceholder != null) this.myPlaceholder.RenderControl(output);
However, this causes the placeholder to be rendered in two places - in the custom control output (good) and in the original location in the page (bad).
I am creating a custom server control in which I place a RequiredFieldValidator. In the the Render method and I want to dynamically create a RequiredFieldValidator and render it to the HtmlTextWriter.
The problem is, when I call RenderControl on the RequiredFieldValidator, it only generates a span for me with no javascript or client side code.
How can I completely render a RequiredFieldValidator to an HtmlTextWriter?
Now, How can I Parse it and render it in RenderContent method ? !!! The following method is always throw the first Exception, it means this.Controls is always empty !!! How can I do it and how I can access to the nested children in RenderControl method ?
public class Menu : WebControl { .... public override void RenderControl(HtmlTextWriter output) { if (!this.HasControls()) throw new Exception("Controls are empty"); .... } }
I am creating a custom control and was wondering if it is possible to render any JavaScript in the head tags of the page it is placed on? I am thinking I would need to use the FindControl method, but am not sure what I need to bind to. I am thinking the page object? Let me know if I am thinking in the right direction or if there is another option.
My only concern with the above mentioned idea is that how do I render all my content while placing some code in the head tags?
I am rendering custom control. I rendered the css file on the prerender. When i rendered more than one control in the aspx page, the css will loaded the number of times the controls in the page. I want to load the css file only one time. How to check the webresource css file on rendering whether it is loaded or not.
I have a control that displays a list of comments. The comments are created in a loop. The problem is that I want to put a LinkButton at the end of each comment and change the CommanArgument of each button to the ID of the current comment.
When I put the Linkbutton in the CreateChildControls method and then add the CommandArgument in the Render loop, the button works, but the argument is blank. When I put the code that's in the CreateChildControls method inside of the loop, I don't get an error, but nothing happens when the button is clicked.
Basically, I have a custom templated control with a custom data container class. When a developer adds an instance of my control to a page, they can define the controls in the LayoutTemplate however they like, as follows:
I would like my control to automatically move the "ml_errormessage" (databound content from Container.ErrorMessage - hard coded token in the property) to be a class of its containing element to make it easier for jQuery to use a selector to find the element and dynamically insert the error message client side. More importantly, I would like it moved out of the way so the class name doesn't get replaced by the content and jQuery can find it as many times as it needs to during the page lifecycle. In other words, I would like the output to look like this without the developer changing the input template or resort to using custom controls in the template:
I would like to move the value using the controls collection rather than resorting to string parsing of the output, if possible. However, when I interrogate the collection in an override of OnPreRender, the control in the template looks like this in the debugger:
As you can see the "ml_errormessage" value is nowhere to be found. Upon analysis of the DataBind event of the Control class using Reflector, I see that it delegates the binding behavior to each control. In other words, each control handles its own databinding. However, since I have no way of knowing in advance what control types will be in the template, how can this change be done?
Note: an acceptable alternative would be to add a new HtmlGenericControl (span) in the exact spot where the "ml_errormessage" is and add it as a class to this new control.On a side note, is there an easy way to get the control's output to indent for easy reading during debugging?
I have extended a gridview to add an additional header with following two hyperlink controls "Select All" and "Clear All". These will operate on checkboxes in the data rows of the grid. I hide the column headers as I only want to show one column with checkboxes and "Select/Clear All" links. Everything is working as expected. Now, I wanted to add a scrollbar to my grid control, I did add the scroll bar using div but what it does is, it includes the "Select All and Clear All" links aswell. I only need to add the scrollbar to datarows and not to the header.I am trying to extend my control to include hte scrollbar by adding div during Render function. But how will I determine or loop through header rows? How will i get the header row with hyperlinks that I created above?? In Render if I do this.HeaderRow, it gets the original column header and not the custom header.
I've been watching a video on Scott Hanselmnn teaching MVC 2 tricks/tips. He mentions how MVC 2 by default uses ASP.NET Web Forms view engine to render the output of the views; he mentions that the web forms view engine is a little slower than it could be for MVC 2 since it generates a control tree and then outputs the HTML to the page (I hope I said that right).
I was wondering what he meant by web forms generating a code tree before outputting the HTML to the page. Does anyone have insight on the view engine of Web forms and the steps of the rendering process works for ASP.NET and MVC2?
This way buttons are rendered on design view as well. The problem is that number of buttons to render is dynamic based on data in xml file (even if the data was static, the number of button is about 12 and I don't think it is wise to copy paste the same code above 6 times...). I thought by using loop for that:
int i = 1; foreach (Button button in tb.Items) { writer.AddAttribute(HtmlTextWriterAttribute.Type, "button"); writer.AddAttribute(HtmlTextWriterAttribute.Id, this.UniqueID + "butto_Foo" + i); writer.AddAttribute(HtmlTextWriterAttribute.Value, button.ButtonValue); writer.RenderBeginTag(HtmlTextWriterTag.Input); writer.RenderEndTag(); //button i++; }
tb is defined in OnLoad; On run time it works, but on design time I get error: > Error rendering control. And control is not being rendered.
However it seems to render properly, it doesn't work anymore if I add some asp.net labels and input controls inside the property (see above asp.net code). I'll get the HttpException:
Unable to find control with id 'KeywordTextBox' that is associated with the Label 'KeywordLabel'.
Somewhat understandable, because the label appears before the textbox in the controlcollection. However, with default asp.net controls it does work, so why doesn't this work? What am I doing wrong? Is it even possible to have two control collections in one control? Should I render it differently?
First off, suggest better ways if you want rather than patch up this code. I am just starting this project and it is first time I have tried to code a web site so anything you suggest is very much welcomed. I have spent the last 2 and 1/2 days trying to find workable answers to this but none I have found and tried seem to fit. If needed I can email screens shots or code. I am trying to construct a website that will have the same main theme throughout as far as the header, navbars sitemap, and footer go. Naturally the content will vary from page to page. I want to use a single master page and css stylesheet for this main theme and I will change the content format as needed per page because each page may vary somewhat.
However, about 15 of the pages will all use the same format for their content and this format will differ from the rest of the site but the format of the main theme will stay the same. So I am trying to create a nested master page to use to format the just the content area for all these pages while retaining the main theme for the header, etc.. I believe I should use a separate css file with the nested master page to handle the formatting of the content areas for these 15 pages. I have code that looks like it works when viewed in web developer but design view but does not work when viewd through a browser (IE, Chrome, Firefox). So far I have the following done in web developer.
If it helps the code and screen shots follow. Master Page called "Parent.master". For all theme throughout site Nested Master Page called "Lab.master". For the 15 like pages Primary stylesheet file for main theme called "StylesheetNew.css" For site theme Secondary stylesheet file to syle the 15 like formatted pages. It is called Labmaster.css Labs.apsx file to use as first of the 15 like pages. Finally screens shots from web developer and browser. Sorry try as I might I could not capture screenshots and put them into this post. The problem is that web developer shows all the area (many lines high) with gray background and with the XXX text that I want to allocate for content in the 15 pages. Yet all the browser show is one line of text o a white background followed by the footer. It looks like the LabStyleSheet works in Web Developer but not in a browser.
I can accomplish the same thing in the code behind by executing cmd_foo, loading the results into a DataTable, then loading them into a DataView with a RowFilter. The goal would be to have multiple DataViews for one DataSource with whatever special filters I wish to apply to the select portion of the DataSource. I could imagine extending this to be more powerful. I tried peaking at this and this but am a bit confused on a few points. Currently, my main issue is being unsure where to grab the output data of the DataSource so I can stick it into a DataTable.
I have a question that I can't quite find the answer to...
If you have an ASP.Net page that takes longer than the request time-out to render what happens to that process? Does the web service abort it?
Lets say I'm writing XML to the response stream in an ASP.Net page and it times-out calling my GenerateXML method. What happens to my method call? Does it complete but the web server reports the time out? or is it aborted?
I could probably write a test to see my own results but I figure there might be more to it.
to get the page content before render. but in MVC there are no event concept, so how we can get the page content. the purpose for that is to emphasize(wrap <strong> tag) the keywords before the page rendered.
I have an application that runs perfectly fine and fast in IE 7. There are certain pages in the application that use the AlwaysVisibleExtender control.
However, when I run the app in IE 8, the same exact pages seem to lock up for roughly 5 seconds before they render completely. What's weird is that the page shows all the contents except for the alwaysvisibleextender and relating panel. Then after the 5 seconds the panel shows. During that 5 seconds the page cannot be navigated or scrolled. This is not really acceptable.
how to make asp.net page fast render as fast as HTML page, this is my main and urgent requirement,
Acctualy My page conatins lots of data, images and videos from the database, so m facing the problem in page rendring, rendring is too slow, and client requires as fast rendring as HTML, i have studied a lot and found.....
Retrive data with the help of XML creates fast page rendring mean Retrive data from database in XML and then bind all the data in page from that XML file.