Does anyone have any good tutorials for ASP?
I'm working on redoing our staff intranet and I'm using this software: http://www.directory-update.com

The backend is quite impressive with the expandability that it supports, and I'm trying to modify the layout of the design so that it suits our companies needs.

Anywho for starters I tried to implement a button that exports the listing to a PDF, and when I click on it nothing happens err :P

Also I'm trying to figure out how to adjust the template xml below so that the image of the person is always showing and it's on the right side as opposed to the left.
PHP Code:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" 
  
Inherits="Ithicos.DirectorySearch._Default" Title="Untitled Page" %>
<%@ 
MasterType VirtualPath="~/MasterPage.Master" %>
<%@ 
Register Assembly="RadSplitter.Net2" Namespace="Telerik.WebControls" TagPrefix="radspl" %>
<%@ 
Register Assembly="RadGrid.Net2" Namespace="Telerik.WebControls" TagPrefix="radG" %>
<%@ 
Register Assembly="RadAjax.NET2" Namespace="Telerik.WebControls" TagPrefix="rada" %>
<%@ 
Register Assembly="RadTabStrip.Net2" Namespace="Telerik.WebControls" TagPrefix="radTS" %>
<%@ 
Register Assembly="RadWindow.Net2" Namespace="Telerik.WebControls" TagPrefix="radW" %>
<%@ 
Register Assembly="RadToolbar.Net2" Namespace="Telerik.WebControls" TagPrefix="radTlb" %>
<%@ 
Register TagPrefix="uc" TagName="Filter" Src="~/UserControls/Filter.ascx" %>
<%@ 
Register TagPrefix="uc" TagName="Photo" Src="~/UserControls/PhotoField.ascx" %>

<
asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
  <
script language="javascript" type="text/javascript">       
    function 
RowSelected(gridRow)
    {    
      if (
gridRow.ItemType == "Item" || gridRow.ItemType == "AlternatingItem")
      {
        
window["<%= AjaxManager.ClientID %>"].AjaxRequest(gridRow.RealIndex);
      }
    }
    
    function 
RowDblClick(row)
    {
      var 
domainName document.getElementById("<%= hfDomainName.ClientID %>").value;
      var 
userId     encodeURIComponent(grid.MasterTableView.GetCellByColumnUniqueName(grid.MasterTableView.SelectedRows[0], "userId").innerHTML);
      var 
userFlag   grid.MasterTableView.GetCellByColumnUniqueName(grid.MasterTableView.SelectedRows[0], "isUser").innerHTML;      
      
//OpenDetailWindow(domainName, userId, row);
      
OpenDetailWindow(domainNameuserIduserFlag);      
    }        
                  
  
</script>
  <asp:Panel ID="contentPanel" runat="server">
    <!-- User hindden field to get the domain name from the server side -->
    <input type="hidden" id="hfDomainName" runat="server" />
     <radspl:RadSplitter ID="Splitter" Orientation="Horizontal" Width="100%" Skin="Web20" runat="server">
      <radspl:RadPane ID="FilterPane" Scrolling="None" runat="server">
        <!-- Filter panel -->
        <div id="filterPanel">
          <!-- Filter control -->                                     
          <uc:Filter ID="filter" runat="server" />                           
        </div>
        <!-- End Filter panel -->
        <!-- Refresh panel -->
        <div style="float:left;">
          <radTlb:RadToolbar ID="leftToolbar" UseFadeEffect="true" Skin="Default" runat="server" AutoPostBack="True" 
            OnOnClick="Toolbar_OnClick">
            <Items>
              <radTlb:RadToolbarButton ID="btnRefresh" DisplayType="TextImage" CommandName="refresh" ButtonText="Display all" 
               ButtonImage="refresh.gif" Visible="true" runat="server" />            
            </Items>
          </radTlb:RadToolbar>              
        </div>
        <!-- Export panel -->
        <asp:Panel ID="exportPanel" style="float:right;" Visible="false" runat="server">
          <radTlb:RadToolbar ID="exportToolbar" UseFadeEffect="true" Skin="Default" runat="server" AutoPostBack="True" 
            OnOnClick="Toolbar_OnClick">
            <Items>
              <radTlb:RadToolbarButton ID="btnExportToExcel" DisplayType="TextImage" CommandName="exportToExcel" CommandArgument="Excel" ButtonImage="excel.gif" Visible="true" runat="server" />
              <radTlb:RadToolbarSeparator ID="separator1" runat="server" Visible="true" />                                                        
              <radTlb:RadToolbarButton ID="btnExportToCsv" DisplayType="TextOnly" CommandName="exportToCSV" CommandArgument="CSV" Visible="true" runat="server" />
              <radTlb:RadToolbarSeparator ID="separator2" runat="server" Visible="true" /> 
              <radTlb:RadToolbarButton ID="btnExportToPdf" DisplayType="TextOnly" CommandName="exportToPdf" CommandArgument="PDF" Visible="true" runat="server" />

            </Items>
          </radTlb:RadToolbar>
        </asp:Panel>                                                                          
      </radspl:RadPane>
      <radspl:RadPane ID="GridPane" Height="270px" Scrolling="None" runat="server">
        <div id="divUserList" style="table-layout:fixed">
          <radG:RadGrid ID="userGrid" runat="server"
            AllowAutomaticUpdates="true"
            AllowMultiRowSelection="false"
            AllowPaging="true"
            AllowSorting="true"
            AutoGenerateColumns="true"
            EnableAJAX="true"
            EnableAJAXLoadingTemplate="true"
            Height="270px"
            LoadingTemplateTransparency="50" 
            OnColumnCreated="userGrid_ColumnCreated"
            OnPageIndexChanged="userGrid_PageIndexChanged"
            OnSortCommand="userGrid_SortCommand"
            PageSize="20"
            Skin="Office2007"
            Width="100%">
            <PagerStyle Mode="NextPrevAndNumeric" />
            <ClientSettings ApplyStylesOnClient="true" EnableClientKeyValues="true" AllowColumnsReorder="false" 
              ReorderColumnsOnClient="false">                
              <ClientEvents OnGridCreated="GridCreated" OnRowSelected="RowSelected" OnRowDblClick="RowDblClick" />
              <Resizing AllowColumnResize="true" EnableRealTimeResize="true" ResizeGridOnColumnResize="true" />
              <Scrolling AllowScroll="true" SaveScrollPosition="false" ScrollHeight="230px" UseStaticHeaders="true" />
              <Selecting AllowRowSelect="true" EnableDragToSelectRows="false" />        
            </ClientSettings>
            <MasterTableView Width="100%" TableLayout="Fixed" DataKeyNames="userId, isUser" AllowNaturalSort="false">            
              <Columns>
                <radG:GridTemplateColumn HeaderStyle-Width="22px" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Wrap="true"
                   Resizable="false" ItemStyle-Wrap="true" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="22px">
                  <ItemTemplate>
                    <asp:Image ID="ObjectTypeImage" BorderWidth="0px" runat="server"
                      ImageUrl='<%# Convert.ToBoolean(DataBinder.Eval(Container.DataItem, "isUser"))? "Images/user.gif" : "Images/contact.gif" %>'
                      AlternateText='<%# Convert.ToBoolean(DataBinder.Eval(Container.DataItem, "isUser"))? "User" : "Contact" %>'>
                     </asp:Image>                    
                  </ItemTemplate>
                </radG:GridTemplateColumn>
             </Columns>
            </MasterTableView>
          </radG:RadGrid>
        </div>
        <div>
          <radG:RadGrid ID="exportGrid" runat="server"
            AllowAutomaticUpdates="true"
            AllowMultiRowSelection="false"
            AllowPaging="false"
            AllowSorting="true"
            AutoGenerateColumns="true"
            EnableAJAX="true"
            EnableAJAXLoadingTemplate="false"
            Height="270px"
            OnColumnCreated="exportGrid_ColumnCreated"            
            Width="726px">
            <ClientSettings EnableClientKeyValues="true"></ClientSettings>
            <MasterTableView Width="100%" DataKeyNames="userId" AllowNaturalSort="false"></MasterTableView>
          </radG:RadGrid>
        </div>
      </radspl:RadPane>
      <radspl:RadPane ID="detailsPane" Height="232px" Scrolling="None" runat="server">
        <div id="detailsViewPanel" runat="server" style="height: 232px">        
          <!-- Start tabs -->
          <div style="padding-top:5px">
            <radTS:RadTabStrip ID="TabStrip" runat="server" SelectedIndex="0" Skin="Outlook" 
              MultiPageID="MultiPage">
              <Tabs>
                <radTS:Tab ID="generalTab"          Width="70px" PageViewID="generalPage" Visible="false" />
                <radTS:Tab ID="organizationTab"     Width="70px" PageViewID="organizationPage" Visible="false" />
                <radTS:Tab ID="addressTab"          Width="70px" PageViewID="addressPage" Visible="false" />
                <radTS:Tab ID="telephonesTab"       Width="70px" PageViewID="telephonesPage" Visible="false" />
                <radTS:Tab ID="customAttributesTab" Width="70px" PageViewID="customAttributesPage" Visible="false" />
                <radTS:Tab ID="additionalInfoTab"   Width="70px" PageViewID="additionalInfoPage" Visible="false" />
              </Tabs>
            </radTS:RadTabStrip>
          </div>             
          <!-- End tabs -->          
          <!-- Start multi page -->
          <radTS:RadMultiPage ID="MultiPage" SelectedIndex="0" runat="server">
            <!-- General Section -->
            <radTS:PageView ID="generalPage" runat="server" Visible="false">
              <asp:Panel ID="generalPanel" CssClass="detailsViewContentPanel" runat="server" ScrollBars="Vertical">
                <asp:Table ID="Table1" runat="server" BorderWidth="0" Width="97%">
                  <asp:TableRow>
                    <asp:TableCell BorderWidth="0" VerticalAlign="Top"> 
                      <asp:DetailsView ID="generalDetails" AutoGenerateRows="False" runat="server" 
                        GridLines="None" CellPadding="4" CellSpacing="1" CssClass="detailsView"  
                        FieldHeaderStyle-CssClass="fieldHeader" RowStyle-CssClass="rowDetails">
                        <Fields>                          
                          <asp:BoundField DataField="firstName" Visible="false" />
                          <asp:BoundField DataField="initials" Visible="false" />
                          <asp:BoundField DataField="lastName" Visible="false" />
                          <asp:BoundField DataField="nameSuffix" Visible="false" />
                          <asp:BoundField DataField="displayName" Visible="false" />
                          <asp:BoundField DataField="userName" Visible="false" />                     
                          <asp:BoundField DataField="email" HtmlEncode="false" DataFormatString="<a href=mailto:{0}>{0}</a>" Visible="false" />                                                                              
                        </Fields>
                      </asp:DetailsView>
                    </asp:TableCell>
                    <asp:TableCell ID="photoCell" Visible="false" Width="10%">              
                      <asp:Panel ID="photoPanel" runat="server" HorizontalAlign="center">                    
                        <uc:Photo ID="photo" runat="server" />
                      </asp:Panel>
                    </asp:TableCell>  
                  </asp:TableRow>
                </asp:Table>
              </asp:Panel>
            </radTS:PageView>
            <!-- Organization Section -->
            <radTS:PageView ID="organizationPage" runat="server" Visible="false">
              <asp:Panel ID="organizationPanel" CssClass="detailsViewContentPanel" runat="server" ScrollBars="Vertical">
                <asp:DetailsView ID="organizationDetails" AutoGenerateRows="False" runat="server" 
                  GridLines="None" CellPadding="4" CellSpacing="1" CssClass="detailsView"  
                  FieldHeaderStyle-CssClass="fieldHeader" RowStyle-CssClass="rowDetails">
                  <Fields>
                    <asp:BoundField DataField="company" Visible="false" />                  
                    <asp:BoundField DataField="office" Visible="false" />
                    <asp:BoundField DataField="division" Visible="false" />
                    <asp:BoundField DataField="department" Visible="false" />
                    <asp:BoundField DataField="departmentNumber" Visible="false" />
                    <asp:BoundField DataField="title" Visible="false" />
                    <asp:BoundField DataField="employeeID" Visible="false" />
                    <asp:BoundField DataField="employeeNumber" Visible="false" />
                    <asp:BoundField DataField="employeeType" Visible="false" />
                    <asp:BoundField DataField="manager" Visible="false" />
                    <asp:BoundField DataField="assistant" Visible="false" />
                    <asp:BoundField DataField="secretary" Visible="false" />
                    <asp:BoundField DataField="directReports" HtmlEncode="false" Visible="false" />                                                                                  
                  </Fields>
                </asp:DetailsView>          
              </asp:Panel>
            </radTS:PageView>
            <!-- Address Section -->
            <radTS:PageView ID="addressPage" runat="server" Visible="false">
              <asp:Panel ID="addressPanel" CssClass="detailsViewContentPanel" runat="server" ScrollBars="Vertical"> 
                <asp:DetailsView ID="addressDetails" AutoGenerateRows="False" runat="server" 
                  GridLines="None" CellPadding="4" CellSpacing="1" CssClass="detailsView"  
                  FieldHeaderStyle-CssClass="fieldHeader" RowStyle-CssClass="rowDetails">
                  <Fields>
                    <asp:BoundField DataField="streetAddress" Visible="false" HtmlEncode="false" />
                    <asp:BoundField DataField="roomNumber" Visible="false" />
                    <asp:BoundField DataField="postOfficeBox" Visible="false" />
                    <asp:BoundField DataField="city" Visible="false" />
                    <asp:BoundField DataField="stateOrProvince" Visible="false" />
                    <asp:BoundField DataField="zipOrPostalCode" Visible="false" />
                    <asp:BoundField DataField="country" Visible="false" />                    
                  </Fields>
                </asp:DetailsView>                         
              </asp:Panel>            
            </radTS:PageView>
            <!-- Telephones Section -->
            <radTS:PageView ID="telephonesPage" runat="server" Visible="false">
              <asp:Panel ID="telephonesPanel" CssClass="detailsViewContentPanel" runat="server" ScrollBars="Vertical">
                <asp:DetailsView ID="telephonesDetails" AutoGenerateRows="False" runat="server" 
                  GridLines="None" CellPadding="4" CellSpacing="1" CssClass="detailsView"  
                  FieldHeaderStyle-CssClass="fieldHeader" RowStyle-CssClass="rowDetails">
                  <Fields>
                    <asp:BoundField DataField="officePhone" Visible="false" />
                    <asp:BoundField DataField="otherOfficePhone" Visible="false" />
                    <asp:BoundField DataField="fax" Visible="false" />
                    <asp:BoundField DataField="otherFax" Visible="false" />
                    <asp:BoundField DataField="mobile" Visible="false" />
                    <asp:BoundField DataField="otherMobile" Visible="false" />
                    <asp:BoundField DataField="pager" Visible="false" />
                    <asp:BoundField DataField="otherPager" Visible="false" />                    
                    <asp:BoundField DataField="homePhone" Visible="false" />
                    <asp:BoundField DataField="otherHomePhone" Visible="false" />                    
                    <asp:BoundField DataField="ipPhone" Visible="false" />
                    <asp:BoundField DataField="otherIpPhone" Visible="false" />                    
                    <asp:BoundField DataField="assistantPhone" Visible="false" />
                    <asp:BoundField DataField="msExchUMOperatorNumber" Visible="false" />                    
                  </Fields>
                </asp:DetailsView>                     
              </asp:Panel>
            </radTS:PageView>
            <!-- Custom Attribute Section -->
            <radTS:PageView ID="customAttributesPage" runat="server" Visible="false">
              <asp:Panel ID="customAttributesPanel" CssClass="detailsViewContentPanel" runat="server" ScrollBars="Vertical">                    
                <asp:DetailsView ID="customAttributesDetails" AutoGenerateRows="False" runat="server" 
                  GridLines="None" CellPadding="4" CellSpacing="1" CssClass="detailsView"  
                  FieldHeaderStyle-CssClass="fieldHeader" RowStyle-CssClass="rowDetails">
                  <Fields>
                    <asp:BoundField DataField="extensionAttribute1" Visible="false" />
                    <asp:BoundField DataField="extensionAttribute2" Visible="false" />
                    <asp:BoundField DataField="extensionAttribute3" Visible="false" />
                    <asp:BoundField DataField="extensionAttribute4" Visible="false" />
                    <asp:BoundField DataField="extensionAttribute5" Visible="false" />
                    <asp:BoundField DataField="extensionAttribute6" Visible="false" />
                    <asp:BoundField DataField="extensionAttribute7" Visible="false" />
                    <asp:BoundField DataField="extensionAttribute8" Visible="false" />
                    <asp:BoundField DataField="extensionAttribute9" Visible="false" />
                    <asp:BoundField DataField="extensionAttribute10" Visible="false" />
                    <asp:BoundField DataField="extensionAttribute11" Visible="false" />
                    <asp:BoundField DataField="extensionAttribute12" Visible="false" />
                    <asp:BoundField DataField="extensionAttribute13" Visible="false" />
                    <asp:BoundField DataField="extensionAttribute14" Visible="false" />
                    <asp:BoundField DataField="extensionAttribute15" Visible="false" />                    
                  </Fields>
                </asp:DetailsView>
              </asp:Panel>
            </radTS:PageView>
            <radTS:PageView ID="additionalInfoPage" runat="server" Visible="false">
              <asp:Panel ID="additionalInfoPanel" CssClass="detailsViewContentPanel" runat="server" ScrollBars="Vertical">                    
                <asp:DetailsView ID="additionalInfoDetails" AutoGenerateRows="False" runat="server" 
                  GridLines="None" CellPadding="4" CellSpacing="1" CssClass="detailsView"  
                  FieldHeaderStyle-CssClass="fieldHeader" RowStyle-CssClass="rowDetails">
                  <Fields>
                    <asp:BoundField DataField="description" Visible="false" />
                    <asp:BoundField DataField="webPage" HtmlEncode="false" DataFormatString="<a href={0} target=blank>{0}</a>" Visible="false" />
                    <asp:BoundField DataField="notes" Visible="false" />
                  </Fields>
                </asp:DetailsView>
              </asp:Panel>
            </radTS:PageView>
          </radTS:RadMultiPage>        
        </div>
      </radspl:RadPane>
    </radspl:RadSplitter>
  </asp:Panel>
  <!-- Error Panel -->
  <asp:Panel ID="errorPanel" CssClass="errorPanel" runat="server" Visible="False">
    <asp:Label ID="lblError" runat="server" CssClass="errorText"></asp:Label>
  </asp:Panel>
  <rada:RadAjaxManager ID="AjaxManager" runat="server" OnAjaxRequest="AjaxManager_AjaxRequest">
    <AjaxSettings>  
      <rada:AjaxSetting AjaxControlID="AjaxManager">
        <UpdatedControls>
          <rada:AjaxUpdatedControl ControlID="detailsViewPanel" LoadingPanelID="smallLoadingPanel" />
        </UpdatedControls>
      </rada:AjaxSetting>
      <rada:AjaxSetting AjaxControlID="leftToolbar">
        <UpdatedControls>
          <rada:AjaxUpdatedControl ControlID="userGrid" LoadingPanelID="bigLoadingPanel" />
        </UpdatedControls>
      </rada:AjaxSetting>                                                    
    </AjaxSettings>
  </rada:RadAjaxManager>  
  <rada:AjaxLoadingPanel ID="bigLoadingPanel" runat="server"
    InitialDelayTime="0" Transparency="30" BackColor="#E0E0E0">
    <asp:Image ID="image1" ImageUrl="~/RadControls/AJAX/Skins/Default/loading.gif" BorderWidth="0px"
      AlternateText="Loading" runat="server" Style="margin-top: 200px;"></asp:Image>
  </rada:AjaxLoadingPanel>
  <rada:AjaxLoadingPanel ID="smallLoadingPanel" runat="server"
    InitialDelayTime="0" Transparency="30" BackColor="#E0E0E0">
    <asp:Image ID="image2" ImageUrl="~/RadControls/AJAX/Skins/Default/loading6.gif" BorderWidth="0px"
      AlternateText="Loading" runat="server" Style="margin-top: 25px;"></asp:Image>
  </rada:AjaxLoadingPanel>
  <radw:RadWindowManager ID="RadWindowManager1" Skin="Office2007" runat="server">
    <Windows>
      <radw:RadWindow ID="UserDetailWindow" runat="server" ReloadOnShow="true" 
        Modal="true" Top="60px" DestroyOnClose="false" />
      <radw:RadWindow ID="ExportWindow" runat="server" ReloadOnShow="true" 
        Modal="true" Top="60px" DestroyOnClose="false" Width="350px" Height="190px" />
    </Windows>
  </radw:RadWindowManager>
  <rada:RadAjaxTimer ID="logOffTimer" AutoStart="false" runat="server" OnTick="logOffTimer_Tick" />             
</asp:Content> 
Looks like this is what I'm after, though I can't get it the way I want :P
PHP Code:
                    <asp:TableCell ID="photoCell" Visible="false" Width="10%">              
                      <
asp:Panel ID="photoPanel" runat="server" HorizontalAlign="center">                    
                        <
uc:Photo ID="photo" runat="server" />
                      </
asp:Panel>
                    </
asp:TableCell
I may just end up calling the company up for some technical help, but I would like to try and do it on my own first.