WEBSWAPP Silverlight ASP.NET 3.5 ASP.NET 2.0 ASP.NET 1.0
Cascading Lists
AJAX ToolKit
Hierarchies
C#-ListView C#-GridView UpdatePanel
    
<%@ Register Src="wucAddressType.ascx" TagPrefix="uc" TagName="AddressType" %> <%@ Register Src="UpdatePanelExplanation.ascx" TagPrefix="uc" TagName="Explanation" %> <%@ Register Src="wucCity.ascx" TagPrefix="uc" TagName="City" %> <%@ Page Language="C#" MasterPageFile="~/Categories/WEBSWAPP.Master" AutoEventWireup="true" %> <script runat="server"> protected void LinqDataSource1_Inserted(object sender, LinqDataSourceStatusEventArgs e) { if (e.Exception == null) { WEBSWAPP.Website.Data.Address address = e.Result as WEBSWAPP.Website.Data.Address; if (address != null) { LinqDataSource1.WhereParameters["Id"].DefaultValue = address.Id.ToString(); } } } protected void TemplatePagerField_OnPagerCommand(object sender, DataPagerCommandEventArgs e) { // Check which button raised the event switch (e.CommandName) { case "Reset": LinqDataSource1.WhereParameters["Id"].DefaultValue = "0"; break; } } protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e) { ScriptManager1.AsyncPostBackErrorMessage = e.Exception.Message + "<br/>" + e.Exception.StackTrace; } protected void lvAddress_ItemCommand(object sender, ListViewCommandEventArgs e) { switch (e.CommandName) { case "ThrowException": throw new Exception("An error during update has been raised to test the asynchoronous Postback error handling mechanism"); break; } } </script> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" OnAsyncPostBackError="ScriptManager1_AsyncPostBackError" AllowCustomErrorsRedirect="false"> </asp:ScriptManager> <uc:Explanation ID="Explanation1" runat="server"></uc:Explanation> <asp:LinqDataSource ID="LinqDataSource1" runat="server" ContextTypeName="WEBSWAPP.Website.Data.SamplesDataContext" EnableDelete="True" EnableInsert="True" EnableUpdate="True" TableName="Addresses" OnInserted="LinqDataSource1_Inserted" Where="Id == (@Id==0?Id:@Id)"> <WhereParameters> <asp:Parameter Name="Id" DefaultValue="0" Type="Int32" /> </WhereParameters> </asp:LinqDataSource> <h2> AJAX UpdatePanel and AJAX client-side event handling</h2> <div> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Label ID="lblStatus" runat="server"></asp:Label> <asp:ListView ID="lvAddress" runat="server" DataKeyNames="Id,RecordVersion" DataSourceID="LinqDataSource1" InsertItemPosition="LastItem" OnItemCommand="lvAddress_ItemCommand"> <ItemTemplate> <div class="halfWindowPanel left"> <span class="titleLabel">Suite#:</span> <asp:Label ID="lblSuiteNumber" runat="server" Text='<%# Eval("SuiteNumber") %>' /> <br /> <span class="titleLabel">Address Line 1:</span> <asp:Label ID="txtAddressLine1" runat="server" Text='<%# Eval("AddressLine1") %>' /> <br /> <span class="titleLabel">Address Line 2:</span> <asp:Label ID="AddressLine2Label" runat="server" Text='<%# Eval("AddressLine2") %>' /> <br /> <span class="titleLabel">Location:</span> <asp:Label ID="txtCity" runat="server" Text='<%# (((WEBSWAPP.Website.Data.Location)Eval("Location")).Name) + ", " + ((WEBSWAPP.Website.Data.Location)Eval("Location")).Location1.Name + ", " + ((WEBSWAPP.Website.Data.Location)((WEBSWAPP.Website.Data.Location)Eval("Location")).Location1).Location1.Name%>' /> <br /> <span class="titleLabel">Postal Code:</span> <asp:Label ID="txtPostalCode" runat="server" Text='<%# Eval("PostalCode") %>' /> <br /> <span class="titleLabel">Address Type:</span> <asp:Label ID="txtAddressType" runat="server" Text='<%# ((WEBSWAPP.Website.Data.AddressType)Eval("AddressType")).Name %>' /> <div class="commandBar"> <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" Text="Delete" OnClientClick="return confirm('Are you sure you want to delete this record');" /> <asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" /> </div> </div> </ItemTemplate> <EditItemTemplate> <div id="itemPanel" runat="server" class="halfWindowPanel left"> <h3> Edit contact addresses</h3> <span class="titleLabel">Suite#:</span> <asp:TextBox ID="txtSuiteNumber" runat="server" Text='<%# Bind("SuiteNumber") %>' /> <br /> <span class="titleLabel">Address Line 1:</span> <asp:TextBox ID="txtAddressLine1" runat="server" Text='<%# Bind("AddressLine1") %>' /> <asp:RequiredFieldValidator ID="rfvAddressLine1" runat="server" ErrorMessage="You must enter an address line to save the record" Text="*" ValidationGroup="EditAddress" ControlToValidate="txtAddressLine1"></asp:RequiredFieldValidator> <br /> <span class="titleLabel">Address Line 2:</span> <asp:TextBox ID="AddressLine2Label" runat="server" Text='<%# Bind("AddressLine2") %>' /> <br /> <span class="titleLabel">Location:</span><br /> <uc:City runat="server" ID="ucCity" CityId='<%#Bind("CityId") %>' /> <br /> <span class="titleLabel">Postal Code:</span> <asp:TextBox ID="txtPostalCode" runat="server" Text='<%# Bind("PostalCode") %>' /> <br /> <span class="titleLabel">Address Type:</span> <uc:AddressType runat="server" ID="ucAddressType" AddressTypeId='<%#Bind("AddressTypeId") %>' /> <div class="commandBar"> <asp:Button ID="UpdateButton" runat="server" ValidationGroup="EditAddress" CommandName="Update" Text="Update" /> <asp:Button ID="CancelButton" runat="server" CausesValidation="false" CommandName="Cancel" Text="Cancel" /> <asp:Button ID="ThrowExpButton" runat="server" CausesValidation="true" CommandName="ThrowException" Text="Throw An Exception" /> </div> </div> </EditItemTemplate> <EmptyDataTemplate> <div class="halfWindowPanel left"> <p> No data was returned.</p> </div> </EmptyDataTemplate> <InsertItemTemplate> <div id="itemPanel" runat="server" class="halfWindowPanel right white"> <span class="caption">Insert new contact address</span> <br /> <span class="titleLabel">Suite#:</span> <asp:TextBox ID="txtSuiteNumber" runat="server" Text='<%# Bind("SuiteNumber") %>' /> <br /> <span class="titleLabel">Address Line 1:</span> <asp:TextBox ID="txtAddressLine1" runat="server" Text='<%# Bind("AddressLine1") %>' /> <asp:RequiredFieldValidator ID="rfvAddressLine1" runat="server" ErrorMessage="You must enter an address line to save the record" Text="*" ValidationGroup="InsertAddress" ControlToValidate="txtAddressLine1"></asp:RequiredFieldValidator> <br /> <span class="titleLabel">Address Line 2:</span> <asp:TextBox ID="AddressLine2Label" runat="server" Text='<%# Bind("AddressLine2") %>' /> <br /> <span class="titleLabel">Location:</span><br /> <uc:City runat="server" ID="ucCity" CityId='<%#Bind("CityId") %>' /> <br /> <span class="titleLabel">Postal Code:</span> <asp:TextBox ID="txtPostalCode" runat="server" Text='<%# Bind("PostalCode") %>' /> <br /> <span class="titleLabel">Address Type:</span> <uc:AddressType runat="server" ID="ucAddressType" AddressTypeId='<%#Bind("AddressTypeId") %>' /> <br /> <div class="commandBar"> <asp:Button ID="InsertButton" runat="server" ValidationGroup="InsertAddress" CommandName="Insert" Text="Insert" /> <asp:Button ID="CancelButton" runat="server" CausesValidation="false" CommandName="Cancel" Text="Clear" /> <br /> </div> </div> </InsertItemTemplate> <LayoutTemplate> <div id="itemPlaceholder" runat="server"> </div> </LayoutTemplate> </asp:ListView> <div class="pagerStyle"> <asp:DataPager ID="DataPager1" runat="server" PageSize="1" PagedControlID="lvAddress"> <Fields> <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowLastPageButton="True" /> <asp:TemplatePagerField OnPagerCommand="TemplatePagerField_OnPagerCommand"> <PagerTemplate> <asp:Button ID="btnReset" runat="server" Text="Reset" CommandName="Reset" /> </PagerTemplate> </asp:TemplatePagerField> </Fields> </asp:DataPager> </div> <asp:ValidationSummary runat="server" ID="valSumm" ValidationGroup="EditAddress" ShowSummary="false" ShowMessageBox="true" /> <asp:ValidationSummary runat="server" ID="ValidationSummary1" ValidationGroup="InsertAddress" ShowSummary="false" ShowMessageBox="true" /> <span id="lblStatus" style="background-color: Yellow;"></span> </ContentTemplate> </asp:UpdatePanel> </div> <script type="text/javascript"> var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_beginRequest(prm_beginRequest); prm.add_endRequest(prm_endRequest); function prm_beginRequest(sender, args) { var button = args.get_postBackElement(); button.disabled = true; } function prm_endRequest(sender, args) { //alert("prm_endRequest"); var lblStatus = $get("lblStatus"); if (args.get_error() != null) { lblStatus.innerHTML = args.get_error().message; args.set_errorHandled(true); } } </script> </asp:Content>