1
Posted on 1:30 AM by prajeesh and filed under
In my previous post I discussed about disabling the right context menu in a web page , here we can discuss on how to prevent text selection in the web page, if you want to prevent normal users copying content of your web page then it will be useful.
Just add following functions to your web page's body tag.

one drawback is it will not work in mozilla, but we have another workaround for this,just add onmousedown function also in the body tag:

as we added in body tag, you can add these functions in any elements of your web pages for preventing selection Shout it kick it on DotNetKicks.com
0
Posted on 9:46 PM by prajeesh and filed under
Some websites does not allow right click context menu option for security reasons, you can also achieve this by adding following code to your body tag of the page.

Alternatively, you can show an alert saying "Right click disabled" if you call a function from body tag's oncontextmenu event, for eg:-

Disclaimer: I have tested this functions in IE7 and Mozilla 3.0 only , it will not work in Opera.
Enjoy coding

Shout it kick it on DotNetKicks.com
0
Posted on 9:12 PM by prajeesh and filed under
In some websites you may have noticed a fade effect while browsing the pages, we may feel an ajax effect and may not feel slow page load, just add the following meta tag to your page before the body tag.


Please note that it will not work in Mozilla. Shout it kick it on DotNetKicks.com
2
Posted on 4:18 AM by prajeesh and filed under ,
Sometimes you may need to call a method in the parent page from a child user control, for eg:- we have a user control with New, Save, Delete buttons and based on the page type we may need to call appropreate methods.
Before going to actual aim of this post we must have an idea about delegates and event handlers.
What is a delegate & how should we use it?
A deligate is just like a function pointer in c/c++ , delegates can be used to call a method where the call method can be determined only at run time.
How can we declare, instantiate and call a deligate?
Suppose we have a method to add two numbers and display the result in the webpage.
Step 1 : Declaring a delegate

public delegate void SumOfTheNumbers(int a, int b);

where delegate is a keyword and void is the return type of the delegate.
Step 2: Instantiating and calling the delegate

DisplayNumbersDelegate objDisDelegate = new DisplayNumbersDelegate(AddNumbers);
objDisDelegate(5 ,10 );

where "objDisDelegate" is the delegate variable and "AddNumbers" is the function to be called, note that signature of the AddNumbers function must be similer to the delegate we declared, that is it must accept two integer parameters and returns void, when we instantiate the delegate object we are pointing the AddNumbers function to the delegate variable, we can use delegate variable to call the method by passing the values, here we are calling only one function using this delegate this is called single cast delegate, you can also use delegates to call multiple functions also this type of delegates are called multi cast delegates.
Calling a method in a parent page from a user control :
Suppose we have two text boxes and an add button in the user control and we want to call a method to add two numbers declared in the parent page and display result in the same page.
Step 1: Declare the delegate and event in user control.

public delegate void SumOfTheNumbers(int a, int b);
public event SumOfTheNumbers sumnos;

Step 2:Passing the parmeters to the delegate from click event of the Add button in the user control

protected void btnAdd_Click(object sender, EventArgs e)
{
sumnos(int.Parse(txtBoxNum1.Text), int.Parse(txtBoxNum2.Text));
}

Step 3:Declare the add method in parent page.

public void sumofthenumber(int a, int b)
{
Response.Output.Write("sum of{0} and {1} is : {3} ",a,b,a+b);
}

Step 4: Instantiate the delegate from the page load event of the parent page.

protected void Page_Load(object sender, EventArgs e)
{
delControl1.sumnos += new TestProject.UserControls.delControl.SumOfTheNumbers(sumofthenumber);
}

and you are done, hope you enjoyed this post.






Shout it kick it on DotNetKicks.com
0
Posted on 9:52 PM by prajeesh and filed under
Eventhough it is a tech blog, in this post i would like to share my happiness of being a father. We blessed with a baby girl on October 20th this year (2009) , we named her "Prarthana" meaning is Prayer.
Me and my wife Dhanya are enjoying the new life of parenthood with her :).
See her photo taken on 28th day :

Shout it kick it on DotNetKicks.com
0
Posted on 3:02 AM by prajeesh and filed under ,
Working with Gridview inside Gridview.

Grid view is a very useful and easier to use data presentation control in asp.net it is having lots of default features that we can set very easily, but in some of the projects you may need to show a master client relationship to the users For eg:- List of students who are studying in different departments.
We can handle this situation by using nested grid views, ie a Gridview inside a Gridview.
Microsoft is providing a solution for this situation msdn website , see the link : http://msdn.microsoft.com/en-us/library/aa992038(VS.80).aspx

I think Microsoft's solution contains lot of steps to complete the process, I done a workaround on this and come up with a solution, let me explain the tasks in step by step with an example.
Step 1:
Create a gridview named gvDepartments and add a Template Field in it.
Step 2:
Inside the Template Field'd Item Template add another gridview called gvStudents.
Step 3:
Add following code in gvStudents grid view
DataSource ='<%# GetStudentInfo( Convert.ToInt16(Eval("Department_Id")) ) %>'
Where GetStudentInfo is a server side function that returns a datatable containing the list of students based on department id.
Source of the Grid views will be like below code :

DataKeyNames="DepartMent_Id" CellPadding="4" ForeColor="Black"
GridLines="Vertical" BackColor="White" BorderColor="#DEDFDE"
BorderStyle="None" BorderWidth="1px">




<%# Container.DataItemIndex+1 %>





DataSource ='<%# GetStudentInfo( Convert.ToInt16(Eval("Department_Id")) ) %>'
CellPadding="4" ForeColor="#333333" GridLines="None" ShowHeader="False"
AutoGenerateColumns="False">




<%# Container.DataItemIndex +1 %>






















Step 4
Create Method to bind gvDepartments (Must contain a column named “Department_Id” as we are passing this parameter to bind gvStudents).
Step 5
Create a Method named GetStudentInfo(int department_Id) , It accepts Department_Id as parameter and returns a
datatable contains students list,(example given below) and you are done.

public DataTable StudentsByDepartment(int DepartmentId)
{
SqlConnection dbConnection = new SqlConnection(ConnectionString);
DataTable dtStudentList = new DataTable();
try
{
dbConnection.Open();
SqlDataAdapter daStudents = new SqlDataAdapter();
SqlCommand cmdSelect = new SqlCommand("SelectStudentByDep",dbConnection);
cmdSelect.CommandType = CommandType.StoredProcedure;
cmdSelect.Parameters.AddWithValue("@Dep", DepartmentId );
daStudents.SelectCommand = cmdSelect;
daStudents.Fill(dtStudentList);
}
catch (Exception objException)
{
HttpContext.Current.Response.Write(objException.Message);
}
finally
{
if (dbConnection != null && dbConnection.State == ConnectionState.Open)
{
dbConnection.Close();
}
}
return dtStudentList;
}


Figure: Sample output of a nested Gridview :

Shout it kick it on DotNetKicks.com
0
Posted on 5:43 AM by prajeesh and filed under
In some situations we may need to maintain the scroll bar position when we are dealing with large pages with a button causes post back, you can use achieve this by adding MaintainScrollPositionOnPostback=”true” in @Page directive.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" MaintainScrollPositionOnPostback ="true" %>
Shout it kick it on DotNetKicks.com
0
Posted on 10:29 PM by prajeesh and filed under ,
Here is the list of some commonly used reguler expressions for validating your forms.
E-mail
^([0-9a-zA-Z]([-\.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$
URL
^(htf)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$
Social Security Number
^\d{3}-\d{2}-\d{4}$
Phone number(Validates US Phone number)
^[01]?[- .]?(\([2-9]\d{2}\)[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}$
Zip Code(Validates US Zip code)
^(\d{5}-\d{4}\d{5}\d{9})$^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$
Currency(Non Negative)
^\d+(\.\d\d)?$
Currency(+ve or -ve)
^(-)?\d+(\.\d\d)?$
Non Negative Integer
^\d+$
For a detailed article on reguler expressions, refer : http://msdn.microsoft.com/en-us/library/ms972966.aspx Shout it kick it on DotNetKicks.com
7
Posted on 4:17 AM by prajeesh and filed under ,
Sometimes you may be want to show your latest twitter tweets in your website or blog, most of the cases you are doing this by using widgets with limited customization facilities and showing ads or links to other websites, here is an easier way to achieve this using twitter API and javascript.
Step 1:
First, decide where about on your page you want your last tweet to display. Then paste following html code there.
Step 2:
Next you need to put these 2 lines of JavaScript below the code in step 1. On the 2nd line of code where it says prajeeshkk.json, you need to replace prajeeshkk with your twitter username.

Step 3:(Optional)
You can apply css and make the div displaying the tweet stylish.


See how my tweet design looks :

Shout it kick it on DotNetKicks.com
0
Posted on 4:06 AM by prajeesh and filed under ,
In some applications we may need to reset all controls in using a single "Reset" button click, here is the c# code to achieve this.

public static void ResetControls(ControlCollection pagecontrols, bool txtbox, bool dropdownlist, bool label)
{
foreach (Control cntrl in pagecontrols)
{
foreach (Control mycontrols in cntrl.Controls)
{
if (txtbox)
{
if (mycontrols is TextBox)
{
(mycontrols as TextBox).Text = string.Empty;
}
}
if (dropdownlist)
{
if (mycontrols is DropDownList)
{
(mycontrols as DropDownList).SelectedIndex = 0;
}
}
if (label)
{
if (mycontrols is Label)
{
(mycontrols as Label).Text = string.Empty;
}
}
}
}
}

We can call this function using following format if you want to clear all controls except label

FormControl.ResetControls(this.Controls, true, true, false);

Shout it kick it on DotNetKicks.com
0
Posted on 8:54 AM by prajeesh and filed under
Sometimes you may need to update an online database with some stored procedure you have modified in your local system, but in most of the cases you may be confused about what are the stored procedures or tables you modified last, here is a quick solution for this.
1.Query to sort Stored Procedures on modified date.

SELECT name, create_date, modify_date,type
FROM sys.objects
WHERE type = 'P' order by modify_date desc

2.Query to sort Stored Procedures on created date

SELECT name, create_date, modify_date,type
FROM sys.objects
WHERE type = 'P' order by create_date desc

3.Query to sort user defined tables on created date

SELECT name, create_date, modify_date,type
FROM sys.objects
WHERE type = 'u' order by create_date desc

4.Query to sort user defined tables on modified date

SELECT name, create_date, modify_date,type
FROM sys.objects
WHERE type = 'u' order by modify_date desc
Shout it kick it on DotNetKicks.com
0
Posted on 12:55 PM by prajeesh and filed under , ,
In some websites you may seen animating or scrolling page titles, here is the trick to do this, just place below code between your page's <head> and </head> tags
Shout it kick it on DotNetKicks.com
0
Posted on 11:01 AM by prajeesh and filed under
Some situations such as a freequently updating page you may need to refresh your page automatically, here is the code to achieve this.

Response.AppendHeader("Refresh", "60; URL=Default.aspx");

Here your page Default.aspx will be refreshed after 60 seconds, if you want to redirect to another page after a few seconds, replace the page 'Default.aspx' with the page you want to be redirected. Shout it kick it on DotNetKicks.com
0
Posted on 5:20 AM by prajeesh and filed under ,
Here is the SQL query to create a stored procedure that deletes all stored procedures in a database


create procedure dropallsp as
declare @procName varchar(500)
declare cur cursor
for Select [name] from sys.procedures where [type] = 'P' and is_ms_shipped = 0 and [name] not like 'sp[_]%diagram%'
open cur
fetch next from cur into @procName
while @@fetch_status = 0
begin
exec('drop procedure ' + @procName)
fetch next from cur into @procName
end
close cur
deallocate cur
Shout it kick it on DotNetKicks.com
0
Posted on 5:13 AM by prajeesh and filed under ,
Here is an easy way to drop all tables in a database using a single query.

exec sp_msforeachtable 'Drop table ?'

As it is an undocumented stored procedure it may be get removed any time without any notification. Shout it kick it on DotNetKicks.com
0
Posted on 2:05 PM by prajeesh and filed under
Microsoft Launched a new community portal for developers to thrive your career, this portal helps you to find a job, training, trial software's and community support for developers.
URL is : http://www.microsoft.com/click/thrivedev/ Shout it kick it on DotNetKicks.com
0
Posted on 1:24 PM by prajeesh and filed under ,
In ASP.net we are using Response.Redirect or Server.Transfer for redirect to another page, this Redirection can also be done using Javascript or HTML
javascript:

< language="javascript">
window.location = "YourURL.aspx";
< /script >

Plain HTML(you can add following code between your <head> and </head> tags):

< equiv="REFRESH" content="0;url=yourURL.aspx">
Shout it kick it on DotNetKicks.com
1
Posted on 12:47 PM by prajeesh and filed under
In ASP.net we are redirecting to a page using Response.Redirect("PageName.aspx") ; or
using Server.Transfer("PageName.aspx"); difference between these two commands are
Response.Redirect tells browser to redirect to another page where Server.Transfer instead of telling the browser it changes the focus of the web server to another page so it reduces HTTP requests and run your application faster also browser url will be same, please note that Server.Transfer can only used for redirection between the sites running in same server.
If you set PreserveForm parameter True then existing query strings and form values are available in next page too.


Shout it kick it on DotNetKicks.com
0
Posted on 1:29 PM by prajeesh and filed under , , ,
Me and my colleague Anurag were trying to integrate a Paypal button in one of our recent project, we copied the button code available from Paypal website to our ASP.NET page and it was not worked and button click results only in a postback, at last we realized that it wont work as button code contained a form and ASP.net will not support more than one form in a page.
The button code we got from Paypal was like below:








We googled a lot to overcome this situation and finally we got a quick solution from Chyake Uchaya's blog, but the solution was not worked well in Mozilla, we done minor changes in the code and it worked perfectly finally, here is the code:





if you are not using Master pages, you can replace getElementById('aspnetForm') with getElementById('form1') or the form name you are using. Shout it kick it on DotNetKicks.com
0
Posted on 3:00 AM by prajeesh and filed under ,


Microsoft corporation announces Windows 7 pricing and upgrade option program.
So here’s the low-down on pricing for Windows 7. The estimated retail prices for upgrade packaged retail product of Windows 7 in the U.S. are:
Windows 7 Home Premium (Upgrade): $119.99
Windows 7 Professional (Upgrade): $199.99
Windows 7 Ultimate (Upgrade): $219.99
And the estimated retail prices for full packaged retail product of Windows 7 in the U.S. are:
Windows 7 Home Premium (Full): $199.99
Windows 7 Professional (Full): $299.99
Windows 7 Ultimate (Full): $319.99
This means that Windows 7 Home Premium full retail product is $40.00 less than Windows Vista Home Premium today.

Read full story here Shout it kick it on DotNetKicks.com