ASP.net Interfaces

clock June 1, 2008 22:11 by author Nazar Rizvi

I was going through interfaces in ASP.net and I foung this article named 'Understanding Interfaces and Their Usefulness' by Tim Stall.

You can get to it at: http://aspnet.4guysfromrolla.com/articles/110304-1.aspx

Couple of the examples provided would help anyone kick off... 

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


ASP.net AJAX Text Editor

clock November 15, 2007 17:27 by author Nazar Rizvi

I have been using the FCK Text Editor for almost 2 years, and finally codeplex have come out with a new ASP.NET AJAX Rich Text Editor.

Featurewise it has all the funtionality of FCKeditor; I think tha performance it not upto the previous one, but who cares the AJAX makes it all the more usable.

And it also supports multiple languages. Here is the code plex link.

Currently rated 3.9 by 7 people

  • Currently 3.857143/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Image Slideshow with fading effect

clock November 8, 2007 02:05 by author Nazar Rizvi

I have been trying to use the slideshow control so that the images fade in and fade out. I tried searching various forums out there but there is no actual solution for it. Undecided 

Finally I added up few AJAX animation effects to the slideshow container which would give you the desired effect.

NOTE: This is sort of an hack where in you have to manually time the fading in and out effects and the slideshow timing.

Also since this is continuous javascript this might put a little bit load on the user's browser.

Below is my code:

<script runat="Server" type="text/C#">

[System.Web.Services.WebMethod]

[System.Web.Script.Services.ScriptMethod]

public static AjaxControlToolkit.Slide[] GetSlides()

{

return new AjaxControlToolkit.Slide[] {

new AjaxControlToolkit.Slide("images/Autumn Leaves.jpg", "", ""),

new AjaxControlToolkit.Slide("images/Creek.jpg", "", ""),

new AjaxControlToolkit.Slide("images/Dock.jpg", "", ""),

new AjaxControlToolkit.Slide("images/Forest.jpg", "", "")};

}

</script>

<div>

<asp:Image ID="Image1" runat="server" Width="800px" Style="border: 1px solid black;

width: auto" ImageUrl="images/Creek.jpg" AlternateText="ME" /><br />

</div>

<cc1:SlideShowExtender ID="slideshowextend1" runat="server" TargetControlID="Image1"

SlideShowServiceMethod="GetSlides" AutoPlay="true" ImageTitleLabelID="imageTitle"

ImageDescriptionLabelID="imageDescription" PlayInterval="7000" Loop="true" />

<cc1:AnimationExtender ID="MyExtender" runat="server" TargetControlID="Image1">

<Animations>

<OnLoad>

<Sequence iterations="0">

<FadeIn Duration="10.0" Fps="5" />

<FadeOut Duration="10.0" Fps="5" />

</Sequence>

</OnLoad>

</Animations>

</cc1:AnimationExtender>

Currently rated 4.8 by 5 people

  • Currently 4.8/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Two rows of tab headers in TabContainer in Ajax Control Toolkit

clock October 4, 2007 21:27 by author Nazar Rizvi

I had this issue where I wanted more than one row of headers in the TabContainer as I had a large number of panels and was not able to fit them in the page.

Here is the solution. [make sure you download the toolkit with source]

Open the AJAX Control Toolkit's solution by clicking on the solution file inside the toolkit folder.  

Open the file Tabs.css under AjaxControlToolkit/Tabs/Tabs.css

And make the following changes.

/* default layout */.ajax__tab_default .ajax__tab_header {}
.ajax__tab_default .ajax__tab_outer {display:-moz-inline-box;display:inline-block}
.ajax__tab_default .ajax__tab_inner {display:-moz-inline-box;display:inline-block}
.ajax__tab_default .ajax__tab_tab {margin-right:4px;overflow:hidden;text-align:center;cursor:pointer;display:-moz-inline-box;display:inline-block}

Now click on Build -> Build Solution to build the solution.


Use the AjaxControlToolkit.dll under ToolkitTests/Bin folder as your reference from now on.


Add this dll file as reference to your current website and you should have the 2 rows.


 

 

Currently rated 4.9 by 7 people

  • Currently 4.857143/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Special GridView

clock October 4, 2007 02:28 by author Nazar Rizvi

I have been going through the ASP.net forums and many people have had issues with GridViews especially the situation where the user wants to group each row by a particular condition.

There are controls available in the market which solve the issue (only sad part is we need to buy them).

I have used up 2 GridViews and AJAX Control Toolkit's accordion to achieve the required result. I have not done any back-end code, so this enables even a novice developer to create this page. Also I am using the NorthWind database provided by Microsoft.

 

Working Link

Download the source-code

Screenshot:

Code:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CategoryID"                
DataSourceID="getCategories">                
<Columns>                    
<asp:TemplateField HeaderText="CategoryName" SortExpression="CategoryName">                        
<ItemTemplate>                            
<asp:Label Visible="false" ID="labelCategoryID" runat="server" Text='<%# Bind("CategoryID") %>'></asp:Label>                           
<cc1:Accordion ID="MyAccordion" runat="server" SelectedIndex="-1" HeaderCssClass="accordionHeader"                                
ContentCssClass="accordionContent" FadeTransitions="true" FramesPerSecond="30"                                
TransitionDuration="250" Width="500px" AutoSize="None" RequireOpenedPane="false"                                
SuppressHeaderPostbacks="true">                                
<Panes>                                    
<cc1:AccordionPane ID="pane1" runat="server">                                        
<Header>                                            
<asp:DataList ID="DataList2" runat="server" DataSourceID="getNamefromID">                                                
<ItemTemplate>                                                    
<asp:HyperLink NavigateUrl="~/Default.aspx" runat="server" Text='<%# Eval("CategoryName") %>'></asp:HyperLink>                                                
</ItemTemplate>                                           
</asp:DataList>                                        
</Header>                                        
<Content>                                            
<asp:GridView CellPadding="4" ForeColor="#333333" GridLines="None" ID="GridView2"                                                
runat="server" AutoGenerateColumns="False" DataKeyNames="ProductID" DataSourceID="getProducts">                                                
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />                                                
<RowStyle BackColor="#E3EAEB" />                                                
<PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />                                                
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />                                                
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />                                                
<EditRowStyle BackColor="#7C6F57" />                                                
<AlternatingRowStyle BackColor="White" />                                                
<Columns>                                                    
<asp:BoundField DataField="ProductID" HeaderText="ProductID" InsertVisible="False"                                                        
ReadOnly="True" SortExpression="ProductID" />                                                    
<asp:BoundField DataField="ProductName" HeaderText="ProductName" SortExpression="ProductName" />                                                    
<asp:BoundField DataField="SupplierID" HeaderText="SupplierID" SortExpression="SupplierID" />                                                    
<asp:BoundField DataField="QuantityPerUnit" HeaderText="QuantityPerUnit" SortExpression="QuantityPerUnit" />                                                
</Columns>                                            
</asp:GridView>                                        
</Content>                                    
</cc1:AccordionPane>                                
</Panes>                            
</cc1:Accordion>                            
<asp:AccessDataSource ID="getNamefromID" runat="server" DataFile="~/App_Data/Nwind.mdb"                                
SelectCommand="SELECT [CategoryName],[CategoryID] FROM [Categories] WHERE ([CategoryID] = ?)">                                
<SelectParameters>                                    
<asp:ControlParameter ControlID="labelCategoryID" Name="CategoryID" PropertyName="Text"                                       
 Type="Int32" />                                
</SelectParameters>                            
</asp:AccessDataSource>                            
<asp:AccessDataSource ID="getProducts" runat="server" DataFile="~/App_Data/Nwind.mdb"                                
SelectCommand="SELECT [ProductID], [ProductName], [SupplierID], [QuantityPerUnit] FROM [Products] WHERE ([CategoryID] = ?)">                                
<SelectParameters>                                    
<asp:ControlParameter ControlID="labelCategoryID" Name="CategoryID" PropertyName="Text"                                        
Type="Int32" />                                
</SelectParameters>                            
</asp:AccessDataSource>                        
</ItemTemplate>                    
</asp:TemplateField>                
</Columns>            
</asp:GridView>            
<asp:AccessDataSource ID="getCategories" runat="server" DataFile="~/App_Data/Nwind.mdb"                
SelectCommand="SELECT [CategoryName], [CategoryID] FROM [Categories]"></asp:AccessDataSource>

 

Currently rated 5.0 by 6 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Dictionary words populated to your TextBox (similar to Google labs)

clock October 3, 2007 17:25 by author Nazar Rizvi

1. Now for this one I got hold of one of the dictionary files from a dictionary attack and converted into an access DB.

2. Then went ahead and built an AJAX enabled website using VS 2005.

3. Added up a TextBox and an AutoCompleteExtender.

4. Add an AutoComplete page method from the tasks.

Code of the .aspx page:

<form id="form1" runat="server">        
<asp:ScriptManager ID="ScriptManager1" runat="server" />        
<div>            
Automatically generating words for a textbox using asp.net ajax:
<br />            
<br />            
<asp:TextBox ID="TextBox1" runat="server" Width="372px"></asp:TextBox><br />            
<br />            
<cc1:AutoCompleteExtender TargetControlID="TextBox1" MinimumPrefixLength="1" ID="AutoCompleteExtender1" runat="server" ServiceMethod="GetCompletionList"                
UseContextKey="True">            
</cc1:AutoCompleteExtender>        
</div>    
</form>


4. Added up the following code in the .cs file where in I am doing a simple query and calling up the web service method.

public static string[] GetCompletionList(string prefixText, int count, string contextKey)
{
if (count == 0){count = 10;}string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\\Users\\abbas\\Desktop\\site1\\App_Data\\db01.mdb'";
OleDbConnection conn = new OleDbConnection(connString);string sql = "SELECT [Desc]FROM Table1 WHERE Desc LIKE (@value + '%')";
OleDbCommand myCmd = new OleDbCommand(sql, conn);
myCmd.Parameters.Add(new OleDbParameter("@value", System.Data.SqlDbType.Text));
conn.Open();myCmd.Parameters["@value"].Value = prefixText.ToString();
OleDbDataReader reader = myCmd.ExecuteReader();int i = 0;
ArrayList arrNames = new ArrayList();while (reader.Read() && i < 20){arrNames.Add(reader[0].ToString());i++;
}
conn.Close();
return (string[])(arrNames.ToArray(connString.GetType()));}


And here it goes. I just kept the number of results to 20.





(for the DB. Download a dictionary wordlist. Create a Db with one table and import the data. There you go. If you need the DB or the wordlist just email me)

 

Currently rated 4.7 by 3 people

  • Currently 4.666667/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Date Validation in ASP.NET

clock October 3, 2007 17:24 by author Nazar Rizvi

I have seen many people who had issues with date validation (validating a textbox for a date field). Usually they end up writing regular expressions which work fine but there is a much easier way to to it using Visual Studio 2005. (And I am not talking about using the AJAX Control Toolkit)

You can use a 'Compare Validator' and in its behavior attributes provide the textbox name for "ControlToValidate", set the "Operator" to DataTypeCheck and the "Type" to Date. And this should work fine.

Below is the image for this control.

Currently rated 4.5 by 2 people

  • Currently 4.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Image Display: ASP.net AJAX

clock October 3, 2007 16:22 by author Nazar Rizvi

If you have an image search built in your application and want to have a display similar to that of the live image search you can follow this procedure.

Use a DataList to display your search results and make use of the HoverMenuExtender (one of the new controls from the AJAXcontrolToolkit. You can Change the CSS style to obtain your desired look.

Here is the sample code.


The result of this code:

Currently rated 3.0 by 2 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Editing all the rows in a GridView (Bulk edit)

clock October 3, 2007 15:26 by author Nazar Rizvi

I was trying to find a solution which did bulk updating for all the rows in a gridview, as the gridview provided by VS2005 had its usability issue (at least that's what I thought). After doing some googling I found a set of different grid views available at codeplex called 'ASP.NET Real World Controls'.

Its got a BulkEditGridView, FrozenGridView, GroupingGridView, InlineInsertGridView and TwoHeadedGridView. You can get a hold of the .dll file from http://www.codeplex.com/ASPNetRealWorldContr.
Here is an example of bulk edit grid view.

<cc1:BulkEditGridView ID="BulkEditGridView1" runat="server" AutoGenerateColumns="False"            

DataKeyNames="CategoryID" DataSourceID="AccessDataSource1" EnableInsert="False"            

InsertRowCount="1" SaveButtonID="Button1" AllowPaging="True" BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None" Width="502px"><Columns>

<asp:BoundField ReadOnly="True" DataField="CategoryID" InsertVisible="False" SortExpression="CategoryID" HeaderText="CategoryID"></asp:BoundField>

<asp:BoundField DataField="CategoryName" SortExpression="CategoryName" HeaderText="CategoryName"></asp:BoundField>

<asp:BoundField DataField="Description" SortExpression="Description" HeaderText="Description"></asp:BoundField>

</Columns>            

<FooterStyle BackColor="Tan" />            

<SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />            

<PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />            

<HeaderStyle BackColor="Tan" Font-Bold="True" />            

<AlternatingRowStyle BackColor="PaleGoldenrod" /> </cc1:BulkEditGridView>        

<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Nwind.mdb"            

DeleteCommand="DELETE FROM [Categories] WHERE [CategoryID] = ?" InsertCommand="INSERT INTO [Categories] ([CategoryID], [CategoryName], [Description]) VALUES (?, ?, ?)"             SelectCommand="SELECT [CategoryID], [CategoryName], [Description] FROM [Categories]"            

UpdateCommand="UPDATE [Categories] SET [CategoryName] = ?, [Description] = ? WHERE [CategoryID] = ?">             <DeleteParameters>                 <asp:Parameter Name="CategoryID" Type="Int32" />             </DeleteParameters>            

<UpdateParameters>                 <asp:Parameter Name="CategoryName" Type="String" />                

<asp:Parameter Name="Description" Type="String" />                 <asp:Parameter Name="CategoryID" Type="Int32" />            

 </UpdateParameters>             <InsertParameters>                 <asp:Parameter Name="CategoryID" Type="Int32" />      

           <asp:Parameter Name="CategoryName" Type="String" />                 <asp:Parameter Name="Description" Type="String" />             </InsertParameters>         </asp:AccessDataSource>         <asp:Button ID="Button1" runat="server" Text="Update" Width="200px" />

 


You just need to make sure that you changed the SaveButtonID property to the button's ID.


 

Currently rated 3.0 by 1 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Installing Apache on Vista - Best Solution

clock October 3, 2007 15:23 by author Nazar Rizvi

The other day I was trying to install PHP and apache server on my Vista machine. As I went ahead it got a little bit complicated and some things didn't work out. Then had to search for stuff online and finally got hold of this article which works fine.

Installing Apache:

Uninstall any previous installations of Apache Web server (Start > Control Panel > Programs and Features).

Turn off your firewall (Control Panel).

Stop User Control Access(UAC). Do this by turning it off on your vista machine.

Get the most recent version of apache from http://httpd.apache.org/download.cgi and put it on your desktop. Rename it to apache.msi

Start > All Programs > Accessories

Right-Click “Command Prompt” and choose “Run as Administrator”

Manually remove directories containing previous apache installations (like C:\Program Files\Apache Software Foundation…)

Change to your desktop folder (At prompt type cd desktop)

Type “msiexec /i apache.msi” on the command prompt.

Run through the Apache installer. I’m running a development server, so I left the domain and computer name blank. Choose the default server on port 80 for all users option. Change the installation directory to c:\apache.

Reboot.

The little Apache feather won’t appear on the task bar under Vista with the present version of Apache (2.2.4). To remove the “error” box that says ‘the operation completed successfully” on startup, go to All Programs > Startup, and remove the Apache item there.
Browse to http://localhost. It should say “It works!” If it doesn’t, check your httpd.conf file by going to All Programs > Apache HTTP Server 2.2.x > Configure Apache Server > Test Configuration. Follow the directions for fixing the configuration file.
Turn your firewall and UAC back on.

Now you can install PHP the same way you did for apache. (Follow the same steps as you would do for Windows XP, just turn off the UAC).

 

 

Currently rated 4.0 by 1 people

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Search

Calendar

<<  August 2008  >>
SuMoTuWeThFrSa
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

Archive

Tags

    Categories


    Disclaimer

    The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

    © Copyright 2008

    Sign in