c# winforms pdf viewer control : Copy pdf pages to another pdf application Library utility azure asp.net .net visual studio asp_net_4_and_visual_studio_2010_web_development_overview3-part1197

ASP.NET 4 and Visual Studio 2010 Web Development Overview  
31 
© 2010 Microsoft Corporation 
Even though the input element shown in the markup (from a TextBox control) is only two naming 
containers deep in the page (the nested ContentPlaceholder controls), because of the way master pages 
are processed, the end result is a control ID like the following: 
ctl00_ContentPlaceHolder1_ParentPanel_NamingPanel1_TextBox1
This ID is guaranteed to be unique in the page, but is unnecessarily long for most purposes. Imagine that 
you want to reduce the length of the rendered ID, and to have more control over how the ID is 
generated. (For example, you want to eliminate “ctlxxx” prefixes.) The easiest way to achieve this is by 
setting the ClientIDMode property as shown in the following example: 
<tc:NamingPanel runat="server" ID="ParentPanel" ClientIDMode="Static">  
<tc:NamingPanel runat="server" ID="NamingPanel1" ClientIDMode="Predictable">  
<asp:TextBox ID="TextBox1" runat="server" Text="Hello!"></asp:TextBox 
</tc:NamingPanel>  
</tc:NamingPanel
In this sample, the ClientIDMode property is set to Static for the outermost NamingPanel element, and 
set to Predictable for the inner NamingControl element. These settings result in the following markup 
(the rest of the page and the master page is assumed to be the same as in the previous example): 
<div id="ParentPanel">  
<div id="ParentPanel_NamingPanel1">  
<input name="ctl00$ContentPlaceHolder1$ParentPanel$NamingPanel1$TextBox1"  
type="text" value="Hello!" id="ParentPanel_NamingPanel1_TextBox1" />  
</div>  
The Static setting has the effect of resetting the naming hierarchy for any controls inside the outermost 
NamingPanel element, and of eliminating the ContentPlaceHolder and MasterPage IDs from the 
generated ID. (The name attribute of rendered elements is unaffected, so the normal ASP.NET 
functionality is retained for events, view state, and so on.) A side effect of resetting the naming 
hierarchy is that even if you move the markup for the NamingPanel elements to a different 
ContentPlaceholder control, the rendered client IDs remain the same. 
Note   It is up to you to make sure that the rendered control IDs are unique. If they are not, it can 
break any functionality that requires unique IDs for individual HTML elements, such as the client 
document.getElementById function. 
Copy pdf pages to another pdf - application Library utility:C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others
www.rasteredge.com
Copy pdf pages to another pdf - application Library utility:VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed VB.NET Guide for Extracting Pages from Microsoft PDF Doc
www.rasteredge.com
ASP.NET 4 and Visual Studio 2010 Web Development Overview  
32 
© 2010 Microsoft Corporation 
Creating Predictable Client IDs in Data-Bound Controls 
The ClientID values that are generated for controls in a data-bound list control by the legacy algorithm 
can be long and are not really predictable. The ClientIDMode functionality can help you have more 
control over how these IDs are generated. 
The markup in the following example includes a ListView control: 
<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1" 
OnSelectedIndexChanged="ListView1_SelectedIndexChanged"  
ClientIDMode="Predictable"  
RowClientIDRowSuffix="ProductID"> 
</asp:ListView
In the previous example, the ClientIDMode and RowClientIDRowSuffix properties are set in markup. The 
ClientIDRowSuffix property can be used only in data-bound controls, and its behavior differs depending 
on which control you are using. The differences are these: 
GridView control — You can specify the name of one or more columns in the data source, which are 
combined at run time to create the client IDs. For example, if you set RowClientIDRowSuffix to 
“ProductName, ProductId”, control IDs for rendered elements will have a format like the following: 
rootPanel_GridView1_ProductNameLabel_Chai_1
ListView control — You can specify a single column in the data source that is appended to the client 
ID. For example, if you set ClientIDRowSuffix to “ProductName”, the rendered control IDs will have a 
format like the following: 
rootPanel_ListView1_ProductNameLabel_1
In this case the trailing 
1
is derived from the product ID of the current data item. 
Repeater control— This control does not support the ClientIDRowSuffix property. In a Repeater 
control, the index of the current row is used. When you use 
ClientIDMode="Predictable"
with a 
Repeater control, client IDs are generated that have the following format: 
Repeater1_ProductNameLabel_0 
The trailing 
0
is the index of the current row. 
The FormView and DetailsView controls do not display multiple rows, so they do not support the 
ClientIDRowSuffix property. 
application Library utility:C# PDF Page Replace Library: replace PDF pages in C#.net, ASP.NET
PDF Library - Replace PDF Pages in C#.NET. An Excellent PDF Control Allows C# Users to Replace the Original PDF Page with New PDF Page from Another PDF File in
www.rasteredge.com
application Library utility:VB.NET PDF Page Replace Library: replace PDF pages in C#.net, ASP.
& pages edit, C#.NET PDF pages extract, copy, paste, C# to replace a PDF page with another PDF file page. Support to save multiple PDF pages to anther adobe PDF
www.rasteredge.com
ASP.NET 4 and Visual Studio 2010 Web Development Overview  
33 
© 2010 Microsoft Corporation 
Persisting Row Selection in Data Controls 
The GridView and ListView controls can let users select a row. In previous versions of ASP.NET, selection 
has been based on the row index on the page. For example, if you select the third item on page 1 and 
then move to page 2, the third item on that page is selected.  
Persisted selection was initially supported only in Dynamic Data projects in the .NET Framework 3.5 SP1. 
When this feature is enabled, the current selected item is based on the data key for the item. This 
means that if you select the third row on page 1 and move to page 2, nothing is selected on page 2. 
When you move back to page 1, the third row is still selected. Persisted selection is now supported for 
the GridView and ListView controls in all projects by using the EnablePersistedSelection property, as 
shown in the following example: 
<asp:GridView id="GridView2" runat="server" EnablePersistedSelection="true"> 
</asp:GridView
ASP.NET Chart Control 
The ASP.NET Chart control expands the data-visualization offerings in the .NET Framework. Using the 
Chart control, you can create ASP.NET pages that have intuitive and visually compelling charts for 
complex statistical or financial analysis. The ASP.NET Chart control was introduced as an add-on to the 
.NET Framework version 3.5 SP1 release and is part of the .NET Framework 4 release.  
The control includes the following features: 
35 distinct chart types.  
An unlimited number of chart areas, titles, legends, and annotations. 
A wide variety of appearance settings for all chart elements.  
3-D support for most chart types.  
Smart data labels that can automatically fit around data points.  
Strip lines, scale breaks, and logarithmic scaling.  
More than 50 financial and statistical formulas for data analysis and transformation.  
Simple binding and manipulation of chart data.  
Support for common data formats such as dates, times, and currency.  
Support for interactivity and event-driven customization, including client click events using Ajax. 
State management. 
Binary streaming.  
The following figures show examples of financial charts that are produced by the ASP.NET Chart control. 
application Library utility:C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
You can use specific APIs to copy and get a specific page of PDF file; you can also copy and paste pages from a PDF document into another PDF file.
www.rasteredge.com
application Library utility:C# PDF Page Rotate Library: rotate PDF page permanently in C#.net
Able to save to another PDF file after rotating PDF pages. Copy this demo code to your C# application to rotate C#.NET Demo Code to Rotate All PDF Pages in C#
www.rasteredge.com
ASP.NET 4 and Visual Studio 2010 Web Development Overview  
34 
© 2010 Microsoft Corporation 
For more examples of how to use the ASP.NET Chart control, download the sample code on the Samples 
Environment for Microsoft Chart Controls
page on the MSDN Web site. You can find more samples of 
community content at the Chart Control Forum
Adding the Chart Control to an ASP.NET Page 
The following example shows how to add a Chart control to an ASP.NET page by using markup. In the 
example, the Chart control produces a column chart for static data points. 
<asp:Chart ID="Chart1" runat="server"> 
<Series
<asp:Series Name="Series1" ChartType="Column"> 
<Points
<asp:DataPoint AxisLabel="Product A" YValues="345"/> 
<asp:DataPoint AxisLabel="Product B" YValues="456"/> 
<asp:DataPoint AxisLabel="Product C" YValues="125"/> 
<asp:DataPoint AxisLabel="Product D" YValues="957"/> 
</Points
</asp:Series
</Series
<ChartAreas
<asp:ChartArea Name="ChartArea1"> 
application Library utility:VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
Combine multiple specified PDF pages in into single one file. Merge PDF without size limitation. Append one PDF file to the end of another one in VB.NET.
www.rasteredge.com
application Library utility:C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
Free online C#.NET source code for combining multiple PDF pages together in .NET framework. Append one PDF file to the end of another and save to a single
www.rasteredge.com
ASP.NET 4 and Visual Studio 2010 Web Development Overview  
35 
© 2010 Microsoft Corporation 
<AxisY IsLogarithmic="True" /> 
</asp:ChartArea
</ChartAreas
<Legends
<asp:Legend Name="Legend1" Title="Product Sales" /> 
</Legends
</asp:Chart
Using 3-D Charts 
The Chart control contains a ChartAreas collection, which can contain ChartArea objects that define 
characteristics of chart areas. For example, to use 3-D for a chart area, use the Area3DStyle property as 
in the following example: 
<asp:ChartArea Name="ChartArea1"> 
<area3dstyle  
Rotation="10"  
Perspective="10"  
Enable3D="True"  
Inclination="15"  
IsRightAngleAxes="False"  
WallWidth="0"  
IsClustered="False" /> 
<%-- Additional markup here --%> 
</asp:ChartArea
The figure below shows a 3-D chart with four series of the Bar chart type. 
application Library utility:C# PDF Text Extract Library: extract text content from PDF file in
Enable extracting PDF text to another PDF file, TXT and source PDF document file with a copy-and-paste C# example code for text extraction from all PDF pages.
www.rasteredge.com
application Library utility:VB.NET PDF copy, paste image library: copy, paste, cut PDF images
PDF document images. Allow to copy an image from existing PDF file and paste it into another one. Guarantee high performance image
www.rasteredge.com
ASP.NET 4 and Visual Studio 2010 Web Development Overview  
36 
© 2010 Microsoft Corporation 
Using Scale Breaks and Logarithmic Scales 
Scale breaks and logarithmic scales are two additional ways to add sophistication to the chart. These 
features are specific to each axis in a chart area. For example, to use these features on the primary Y axis 
of a chart area, use the AxisY.IsLogarithmic and ScaleBreakStyle properties in a ChartArea object. The 
following snippet shows how to use scale breaks on the primary Y axis. 
<asp:ChartArea Name="ChartArea1"> 
<axisy
<ScaleBreakStyle  
BreakLineStyle="Wave"  
CollapsibleSpaceThreshold="40"  
Enabled="True" /> 
</axisy
<%-- Additional markup here --%> 
</asp:ChartArea
The figure below shows the Y axis with scale breaks enabled. 
Filtering Data with the QueryExtender Control 
A very common task for developers who create data-driven Web pages is to filter data. This traditionally 
has been performed by building Where clauses in data source controls. This approach can be 
complicated, and in some cases the Where syntax does not let you take advantage of the full 
functionality of the underlying database.  
To make filtering easier, a new QueryExtender control has been added in ASP.NET 4. This control can be 
added to EntityDataSource or LinqDataSource controls in order to filter the data returned by these 
ASP.NET 4 and Visual Studio 2010 Web Development Overview  
37 
© 2010 Microsoft Corporation 
controls. Because the QueryExtender control relies on LINQ, the filter is applied on the database server 
before the data is sent to the page, which results in very efficient operations.  
The QueryExtender control supports a variety of filter options. The following sections describe these 
options and provide examples of how to use them. 
Search 
For the search option, the QueryExtender control performs a search in specified fields. In the following 
example, the control uses the text that is entered in the 
TextBoxSearch
control and searches for its 
contents in the 
ProductName
and 
Supplier.CompanyName
columns in the data that is returned from the 
LinqDataSource control. 
<asp:LinqDataSource ID="dataSource" runat="server"> TableName="Products"> 
</asp:LinqDataSource
<asp:QueryExtender TargetControlID="dataSource" runat="server"> 
<asp:SearchExpression DataFields="ProductName, Supplier.CompanyName"  
SearchType="StartsWith"> 
<asp:ControlParameter ControlID="TextBoxSearch" /> 
</asp:SearchExpression
</asp:QueryExtender
Range 
The range option is similar to the search option, but specifies a pair of values to define the range. In the 
following example, the QueryExtender control searches the 
UnitPrice
column in the data returned 
from the LinqDataSource control. The range is read from the 
TextBoxFrom
and 
TextBoxTo
controls on 
the page. 
<asp:LinqDataSource ID="dataSource" runat="server"> TableName="Products"> 
</asp:LinqDataSource
<asp:QueryExtender TargetControlID="dataSource" runat="server"> 
<asp:RangeExpression DataField="UnitPrice" MinType="Inclusive"  
MaxType="Inclusive"> 
<asp:ControlParameter ControlID="TextBoxFrom" /> 
<asp:ControlParameter ControlID="TexBoxTo" /> 
</asp:RangeExpression
</asp:QueryExtender
ASP.NET 4 and Visual Studio 2010 Web Development Overview  
38 
© 2010 Microsoft Corporation 
PropertyExpression 
The property expression option lets you define a comparison to a property value. If the expression 
evaluates to true, the data that is being examined is returned. In the following example, the 
QueryExtender control filters data by comparing the data in the 
Discontinued
column to the value from 
the 
CheckBoxDiscontinued
control on the page. 
<asp:LinqDataSource ID="dataSource" runat="server" TableName="Products"> 
</asp:LinqDataSource
<asp:QueryExtender TargetControlID="dataSource" runat="server"> 
<asp:PropertyExpression
<asp:ControlParameter ControlID="CheckBoxDiscontinued" Name="Discontinued" /> 
</asp:PropertyExpression
</asp:QueryExtender
CustomExpression 
Finally, you can specify a custom expression to use with the QueryExtender control. This option lets you 
call a function in the page that defines custom filter logic. The following example shows how to 
declaratively specify a custom expression in the QueryExtender control. 
<asp:LinqDataSource ID="dataSource" runat="server" TableName="Products"> 
</asp:LinqDataSource
<asp:QueryExtender TargetControlID="dataSource" runat="server"> 
<asp:CustomExpression OnQuerying="FilterProducts" /> 
</asp:QueryExtender
The following example shows the custom function that is invoked by the QueryExtender control. In this 
case, instead of using a database query that includes a Where clause, the code uses a LINQ query to 
filter the data. 
protected void FilterProducts(object sender, CustomExpressionEventArgs e) 
e.Query = from p in e.Query.Cast<Product>() 
where p.UnitPrice >= 10 
select p; 
These examples show only one expression being used in the QueryExtender control at a time. However, 
you can include multiple expressions inside the QueryExtender control. 
ASP.NET 4 and Visual Studio 2010 Web Development Overview  
39 
© 2010 Microsoft Corporation 
Html Encoded Code Expressions 
Some ASP.NET sites (especially with ASP.NET MVC) rely heavily on using 
<%expression %>
syntax 
(often called “code nuggets”) to write some text to the response. When you use code expressions, it is 
easy to forget to HTML-encode the text, If the text comes from user input, it can leave pages open to an 
XSS (Cross Site Scripting) attack. 
ASP.NET 4 introduces the following new syntax for code expressions: 
<%: expression %>  
This syntax uses HTML encoding by default when writing to the response. This new expression 
effectively translates to the following: 
<%= HttpUtility.HtmlEncode(expression) %> 
For example, 
<%: Request["UserInput"] %>
performs HTML encoding on the value of 
Request["UserInput"].  
The goal of this feature is to make it possible to replace all instances of the old syntax with the new 
syntax so that you are not forced to decide at every step which one to use. However, there are cases in 
which the text being output is meant to be HTML or is already encoded, in which case this could lead to 
double encoding. 
For those cases, ASP.NET 4 introduces a new interface, IHtmlString, along with a concrete 
implementation, HtmlString. Instances of these types let you indicate that the return value is already 
properly encoded (or otherwise examined) for displaying as HTML, and that therefore the value should 
not be HTML-encoded again. For example, the following should not be (and is not) HTML encoded: 
<%: new HtmlString("<strong>HTML that is not encoded</strong>") %> 
ASP.NET MVC 2 helper methods have been updated to work with this new syntax so that they are not 
double encoded, but only when you are running ASP.NET 4. This new syntax does not work when you 
run an application using ASP.NET 3.5 SP1. 
Keep in mind that this does not guarantee protection from XSS attacks. For example, HTML that uses 
attribute values that are not in quotation marks can contain user input that is still susceptible. Note that 
the output of ASP.NET controls and ASP.NET MVC helpers always includes attribute values in quotation 
marks, which is the recommended approach. 
Likewise, this syntax does not perform JavaScript encoding, such as when you create a JavaScript string 
based on user input. 
ASP.NET 4 and Visual Studio 2010 Web Development Overview  
40 
© 2010 Microsoft Corporation 
Project Template Changes 
In earlier versions of ASP.NET, when you use Visual Studio to create a new Web Site project or Web 
Application project, the resulting projects contain only a Default.aspx page, a default 
Web.config
file, 
and the 
App_Data
folder, as shown in the following illustration:  
Visual Studio also supports an Empty Web Site project type, which contains no files at all, as shown in 
the following figure: 
The result is that for the beginner, there is very little guidance on how to build a production Web 
application. Therefore, ASP.NET 4 introduces three new templates, one for an empty Web application 
project, and one each for a Web Application and Web Site project. 
Empty Web Application Template 
As the name suggests, the Empty Web Application template is a stripped-down Web Application 
project. You select this project template from the Visual Studio New Project dialog box, as shown in the 
following figure: 
Documents you may be interested
Documents you may be interested