Tuesday, December 29, 2009

Silver light 2.0 Timer

I have seen many forums asking about the timer so i thought i'd toss up a simple example.
To create timer have to use Dispatchtimer in System.Windows.Threading.
Go through the below example.
<Canvas>
<Canvas.Resources>
<Storyboard x:Name="Timer">
<DoubleAnimation Storyboard.TargetName="rectTimer" Storyboard.TargetProperty="Width" BeginTime="0:0:0" Duration="2"></DoubleAnimation>
</Storyboard>
</Canvas.Resources>
<Rectangle Loaded="rectTimer_Loaded" Visibility="Collapsed" x:Name="rectTimer">
</Rectangle>
</Canvas>

private void rectTimer_Loaded(object sender, RoutedEventArgs e)
{
System.Windows.Threading.DispatcherTimer myDispatcherTimer = new System.Windows.Threading.DispatcherTimer();
myDispatcherTimer.Interval = new TimeSpan(0, 0, 0,1, 100);
myDispatcherTimer.Tick +=new EventHandler(myDispatcherTimer_Tick);
myDispatcherTimer.Start();
}
void myDispatcherTimer_Tick(object sender, EventArgs e)
{
HtmlPage.Window.Alert("TickEvent");
}

Monday, December 28, 2009

Making Transparent In Silverlight..

Now take a example of grid
Example:
<Grid x:Name="LayoutRoot" Background="{x:Null}">

How do we extract "XAP" file in Silverlight?


It's like archive and contains all the resources of silverlight application.
How do we extract xap file?
Step1:
Copy the xap file from clientBin and store in desktop of your machine.
step2:
change the extension in to zip
Example:
test.xap
test.xap.zip
Now you can extract the file.
it's contains one dll and asemblymanifest.info







Event Handler Using Silverlight

It's possible to create the eventhandler through XAML. also using codebehind can attach
event dynamically. It's usefull for dynamically craeate controls.
Example:
<Button Name="btnTest" Content="Test" Width="100" Background="Blue" Margin="1" Height="25"></Button>
public Page()

{
InitializeComponent();
btnTest.Click += btnTest_Click; //Attach Event
btnTest.Click -= btnTest_Click; //Detach Event
}

void btnTest_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Hi How are you");
}

What is use of AppManifest.xml and Assemblyinfo.cs in Silverlight


App(Application) Manifest.
This is the place where we can find the list of assemblies used in the application.
Location Path:Properties/AppManifest
ApplicationInfo
It's contains the information about the project like version, name and publisher.
Location: Properties/Assemblyinfo.cs

Wednesday, December 23, 2009

HtmlPage.Window.Invoke in Silverlight

This method will invoke the javascript method from code behind.
Example

Page.xaml
<UserControl x:Class="_22Dec2009.Page" xmlns="
http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="1024" Height="800"> <Grid x:Name="LayoutRoot" Background="White"> <Border BorderThickness="2" BorderBrush="AliceBlue" CornerRadius="2" Margin="3"> <Button x:Name="Test" Click="Button_Click" Content="Test" Background="AliceBlue" Width="30" Height="20"> </Button> </Border> </Grid></UserControl>
Page.xaml.cs
This is code it will call the javascript method.
private void Button_Click(object sender, RoutedEventArgs e)

{ HtmlPage.Window.Invoke("getAlert", false); }
Default.aspx
<script language="javascript">
function getAlert() {
alert("sdf"); } </script>
Have you noticed in the eventargs. here in silverlight different..

Note:
Also we can call the javascript method throgh this code.
HtmlPage.Window.CreateInstance("getAlert", false);
happy coding! Enjoy


Response Redirect in Silverlight.


here in silverlight we have to use below code navigate to from one pages to another pages.

in the code we can mention target as well as browser features like height width....

Example
HtmlPage.Window.Navigate(new Uri("
http://www.google.com"),"_blank","width:100,height:20");

Full Screen Options in Silverlight.

i am just come to know in silverlight from the coding level we can make full screen for the browser.

This is namespace have to use for the making the full screen.
System.Windows;
Example code is
Application.Current.Host.Content.IsFullScreen=!Application.Current.Host.Content.IsFullScreen

Wednesday, December 16, 2009

Content Delivery Network.

Scott Guthrie has announced last september. This is one of the greatest improvement for who ever using Ajax in their application. Generally when we use Ajax all the library files will be loaded from our own server.

when end user accessing this site it has to travel through wire from few hundred miles to thousand miles.for avoiding these microsoft come up with new network called "Content Delivery Network".
if we use this in our project the performance will increase.


let me explain how it will increase the performance. suppose if you are accessing the site in India.
Content delivery network will find the shortest distance network and then it will load the all library files.
Instead of loading from one place.
Example:
<script src="
http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
instead of mentioning our own path

Wednesday, December 2, 2009

Materialized Views in Oracle

In some scenarios, you won't be in a position to improve the performance of a query without changing the database design. In those scenarios you can think of using materialized view.

Materialized view is a database object that contains the result of a query (it actually contains the rows).


SQL> create materialized view mview
2 build immediate
3 refresh complete on demand
4 as select count(1) from
5 (select state,zip,city,count(1) from mv_test1 group by state,zip,city);

Materialized view created.

Depends on the REFRESH mode specified MV will be refreshed ON DEMAND, ON COMMIT or at specific time.

Advantage:
Main advantage is Improved query perfomance.

Example:
Same query which is used to create the MV is executed here and it took 1.26 secs.

SQL> select count(1) from
2 (select state,zip,city,count(1) from mv_test1 group by state,zip,city);

COUNT(1)
----------
347

Elapsed: 00:00:01.26.

But selecting from MV took 0.01 seconds.

SQL> select * from mview ;

COUNT(1)
----------
347

Elapsed: 00:00:00.01

Disadvantage:

If you use refresh option as ON COMMIT and the MV is created on a transaction table which go through several DML operations, DB resources will be utilized to refresh the MV, and in turn it will slow down the db performance.

Tuesday, November 24, 2009

"String Builder" function in Javascript using Ajax(Enabling Scriptmanager).

I have come across new functionality called "stringbuilder" in javascript using Ajax.

please follow the below steps to enable the Stringbuilder.

Step 1:

Add script manager tag in the aspx page.


Step 2:

Example:

<script type="text/javascript">
function buildAString(title)
{
var headTagStart = "";
var headTagEnd = "";
var titleTagStart = "";
var sb = new Sys.StringBuilder(this._headTagStart);
sb.append(titleTagEnd);
sb.append(title);
sb.append(titleTagEnd);
sb.append(headTagEnd);
// Displays: "The result: "
alert("The result" + sb.toString());
}
var title = "A Title";
buildAString(title);
</script>

Wednesday, November 11, 2009

Calling Parent Method from child control using Events & Delegates.

Before starting we should very clear about event and delegate

Event: it's handler which will call the delegate and it will call the method.

Delegate: it's a function pointer, it will point to the particular function.

Let me explain about calling parent method from the child control.


Step 1: create one aspx pages and usercontrol pages.


step 2:

In the usercontrol create one button and lable. The scenoria is like this when user click on the button has to call the child method as well as the parent method.

Step 3:

Create one user control with the following code.


Childcontrol.ascx

<asp:Button ID="btnShow" runat="server" />
<asp:Label ID="lblShow" runat="server"></asp:Label>



Childcontrol.ascx.cs

public delegate void callDelegate();
public event callDelegate callEvent;

protected void Page_Load(object sender, EventArgs e)
{
btnShow.Click += delegate
{
lblShow.Text = "Hi how are u";
this.showData();
};
}
protected virtual void showData()
{
if (this.callEvent != null)
{
this.callEvent();
}
}


Step 4:


Create one aspx page with name of Parent with the following code.

parent.aspx


<%@ Register Src="~/UserControl/Childuser.ascx" TagPrefix="child" TagName="UC" %>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lblParent" runat="server"></asp:Label>
<child:UC id="UC1" runat="server"></child:UC>
</div>
</form>
</body>
</html>


parent.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
UC1.callEvent += new Childuser.callDelegate(UC1_callEvent);
}

void UC1_callEvent()
{
lblParent.Text = "Hi Parent";
}












Monday, November 9, 2009

Base Pages using C#.Net

Now i am come with the scenario clearing the session on each page writing the code.
for clearing the session in common place.
we can use some thing called base pages. so that we can keep the code in seprate place.
Step 1:
Create one class file with the name of basepages.cs.
This will contain the one method which will clear the session objects permanently.
Example:
public class BasePages:System.Web.UI.Page

{
public void clearSession()

{ if (Page.User.Identity.IsAuthenticated == false)
{ Session.Abandon();
Response.Redirect("login.aspx");
}
}
}
step 2
Create one login with the extension of .Aspx page.in the code behind just inherit that base class method.
public partial class SessionCheck : Performance.BasePages

{
protected void Page_Load(object sender, EventArgs e)
{
base.clearSession();
}
}








Thursday, November 5, 2009

Memory Profiler.

This is the tool which will find out memory leakage. using this we can fine tune the code.

download: http://memprofiler.com/

Thursday, October 29, 2009

function overloading method in webservice.

It's not as direct like class overloding. In webservice we have to enable some settings for
enabling the function overloading. follow below steps.

1. Must Set Attributes of Web service. 2. Set binding ConformsTo = WSIProfile.None.
Sample Class with couple of overloaded methods which exposes as a webservice
Example:
Sample: using System;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;
[WebService(Namespace = "
http://tempuri.org/")]// set Binding information[WebServiceBinding(ConformsTo = WsiProfiles.None)] public class Service : System.Web.Services.WebService{ public Service () { //Uncomment the following line if using designed components //InitializeComponent(); }
// Set Message Name [WebMethod(MessageName="Add int Field")] public int Add(int a, int b) { return a + b; }
// Set Message Name [WebMethod(MessageName="Add float Field] public int Add(float a, float b) { return a + b; }}

Wednesday, October 28, 2009

Health monitoring

Health monitoring in the Web.config file.



This is nice feature in the dotnet frame work 3.5


it will automatically write the event log, When you will not handle the exception in the application,


<system.web>
<healthMonitoring enabled="true"></healthMonitoring>
</system.web>

Monday, October 26, 2009

Calling method from one user control from other usercontrol with out using property.

Take this scenorio, i have button and event in the first user control.

and i have label in the other usercontrol.

when i click on the button have to assign some value for label of other usercontrol with

out using the property


Step 1:

create first user control with following control and method.

<asp:Button ID="btnSubmit" onclick="btnSubmit_Click" runat="server" Text="Submit" />

public void btnSubmit_Click(object sender, EventArgs e)
{
test2 t2 = (test2)Page.FindControl("test2");

t2.callBTN(sender, e);

}
step 2:


create second user control with label with assigning value.

<asp:Label ID="lbltest" runat="server"></asp:Label>


public void callBTN(object sender, EventArgs e)
{
lbltest.Text = "DDDD";
}


Enabling the zoom in and zoom out facility for image using Seadragon control in ajax.

I have come across new control in ajax zooming and zoom out for image. it's quite very
simple to implement this functionality.. it's nice feature thanks to Ajax team.



Step 1:

Create one xml file with the following attributes with tag. these are the attribute and tag will describe the functionality.


<Image TileSize="256" Overlap="1" Format="png" ServerFormat="Default">
<Size Width="1024" Height="768"/>
</Image>

Step 2:


create css class with image.


step 3:


<ajaxToolkit:Seadragon ID="Seadragon"
runat="server"
SourceUrl="sample.xml"> //Step1
CssClass="seadragon" //step 2
<ajaxToolkit:Seadragon>



Friday, October 23, 2009

Showing context menu in the ultrawebgrid using javacript.

Showing context menu in the ultrawebgrid using javacript.

step1:

Create ultrawebgrid with Rowselection.(if not choose selected row property getActiveRow method will not work)

step2:

create web menu with property setting of Popupmenu.

step3:

Calling showmenu function from gridcell click of ultrawebgrid.

step4:

function showmenu(objGrid,objGridid,button)
{

var grid = igtbl_getGridById(objGrid);
if(grid.getActiveRow()!=null)
{
if(button==2)
{
igmenu_showMenu('uwmContextmenu',event);
return true;
}
}
else
{
alert("Please select atleast one row");
return false;
}
}





opening Infragistics webdialogwindow using javascript.

opening Infragistics webdialogwindow using javascript.

var dialogObject = $find("WebDialogWindowSchedule");

dialogObject.get_contentPane().set_contentUrl(TargetURL);

dialogObject._header.setCaptionText("Welcome");

dialogObject.show();


In our project we have to give option like. when ever click on the context menu.

have to show the webdialog window.

While loading have to hide the webdialogwindow. only when we click on the context menu

have to show the dialog. for that have to make width and height 0. when we click on the

context menu have to assign the widht and height.

We have come across some performance issue in the ultrawebgrid.



Please follow the below rules while doing code with infragistics.


1). Don't add dynamic controls in the Initialize row of the ultrawebgrid.


2). Use PreRender event of ultrawebgrid adding dynamic controls.


3). declare all the styles and properties in the code behind.


Explain.

if you declare properties of ultrawebgrid in the aspx. it will take more time to render. so always try to put in the codebehind.

Thursday, October 22, 2009

how to restrict back button using asp.net.

We have come across the problem while clicking on the back button in the browser.

we shouldn't load the page again when we click on the back button.

Below code it will hide the back button. This is also one of the security leavl have to

follow in the transaction pages.

Response.Buffer = true;
Response.CacheControl = "no-cache";
Response.Cache.SetNoStore();
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now.AddDays(-1));

Tuesday, October 20, 2009

Downcasting in OOPS

Assinging the parent class to child class this is called downcasting.

public class Class1
{
public string getValue()
{
return "sd";
}
}

public class class3 : Class1
{
public string GetValue1()
{

class3 cl =(class3) new Class1();
return cl.getValue();


}
}

Upcasting in OOPS

assigning the child class to the parent class that is called the Upcasting


public abstract class Class1
{
public string getValue()
{
return "sd";
}
}

public class class3 : Class1
{
public string GetValue1()
{
Class1 SS =new class3();
return SS.getValue();
}
}

Reading and adding controls dynamically for templated Column in ultrawebgrid.

I have come across performance issue when we add the controls in the initialize row of ulrtrawebgrid. so i have decided to move in to prerender controls.

After moving the controls in to prerender performance got increased.

void uwgProduct_PreRender(object sender, EventArgs e)
{
TemplatedColumn col = (TemplatedColumn)uwgProduct.DisplayLayout.Grid.Bands[0].Columns.FromKey("HeaderCheck");
TemplatedColumn colChild = (TemplatedColumn)uwgProduct.DisplayLayout.Grid.Bands[1].Columns.FromKey("ChildCheck");
int rowTotalCount = uwgProduct.Rows.Count;
///Header////
for (int rowcount = 0; rowcount <>
{

CellItem objcellITem = (CellItem)col.CellItems[rowcount];
HtmlInputCheckBox htmlCheck = new HtmlInputCheckBox();
htmlCheck.Attributes.Add("onclick", "selectEachParent(event,this.value)");
htmlCheck.Attributes.Add("id", Convert.ToString(objcellITem.Value));
htmlCheck.Value = Convert.ToString(objcellITem.Value);
objcellITem.Controls.Add(htmlCheck);
}
////Header/////

////Child Display////////
int childTotalCount = colChild.CellItems.Count;
for (int childCount = 0; childCount <>
{
CellItem objcellITem = (CellItem)col.CellItems[rowIndex];
CellItem objcellITemChild = (CellItem)colChild.CellItems[childCount];
HtmlInputCheckBox htmlCheckChild = new HtmlInputCheckBox();
htmlCheckChild.Attributes.Add("onclick", "UnselectParent(event,this.value)");
htmlCheckChild.ID = Convert.ToString(objcellITem.Value) + "_" + Convert.ToString(objcellITemChild.Value);
htmlCheckChild.Value = Convert.ToString(objcellITem.Value) + "_" + Convert.ToString(objcellITemChild.Value);
objcellITemChild.Controls.Add(htmlCheckChild);
}
////End Child Display////////
}

Infragistics WebDataGrid validation.

In our project we need to do validation for webdatagrid using javascript.

var Gkey,GIndex;
function EnterEditModeValidate(objGrid,Obj1Edited)
{
Gkey = Obj1Edited._cell._column._key;
GIndex = Obj1Edited.getCell().get_row()._index;
}
function ExitingEditValidate(sender,evntArgs)
{
//var index=sender.get_columns().get_columnFromKey(Gkey).get_index();
//var value=sender.get_rows().get_row(GIndex).get_cell(index).get_value();
var innT = document.getElementById("wdgProductList_ed0");
var iChars = "!@#$%^&*()+=-[]\\\;,./{}|\":<>?~_";
if(innT!=null)
{
var sValue = innT.children[0].value;
if(Gkey=="ShipAddress")
{
if(sValue=="")
{
alert("Please enter the value");
evntArgs.set_cancel(true);
}
if(sValue.length > 40)
{
alert("Charecters should be below 40");
evntArgs.set_cancel(true);
}
for (var count = 0; count <>
{
if (iChars.indexOf(sValue.charAt(count)) != -1)
{
alert ("Your string has special characters. \nThese are not allowed.");
evntArgs.set_cancel(true);
}
}
}
}
}

Thursday, October 15, 2009

Adding controls in to ultrawebgrid using PreRenderMethod.

TemplatedColumn col = (TemplatedColumn)uwgProduct.DisplayLayout.Grid.Bands[0].Columns.FromKey("HeaderCheck");
int rowTotalCount = uwgProduct.Rows.Count;
for (int rowcount = 0; rowcount < rowTotalCount; rowcount++)
{
CellItem objcellITem = (CellItem)col.CellItems[rowcount];
DropDownList drp = new DropDownList();
drp.Items.Add(new ListItem("test", "ss"));
drp.ID = "dd";
objcellITem.Controls.Add(drp);
}

Friday, October 9, 2009

Special Character Validation

var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?~_";

for (var i = 0; i < objGridCellValue.length; i++)
{
if (iChars.indexOf(objGridCellValue.charAt(i)) != -1) {
alert ("Your string has special characters. \nThese are not allowed.");
return false;
}
}

Date Compare Function

function DateFormat(dt)
{
var dtformat = new Date(dt)
return dt.format("MM/dd/yyyy");
}

function DateCompare(fromDt,toDt)
{
var arrFromdt=fromDt.split("/");
var arrTodt=toDt.split("/");
var fromDt=new Date(arrFromdt[2],replaceDt(arrFromdt[0]),replaceDt(arrFromdt[1]));
var toDt=new Date(arrTodt[2],replaceDt(arrTodt[0]),replaceDt(arrTodt[1]));
if(fromDt<=toDt)
{
return "1";
}
else
{
return "0";
}
}
function replaceDt(replaceValue)
{
if(parseInt(replaceValue)<10)
{
return replaceValue.replace('0','');
}
else
{
return replaceValue;
}
}

Friday, August 21, 2009

Asp DataGrid with Editable cell with out Postback using Javascript

This is created for one of my friend. he want's in his project. so i thought of sharing with everyone am writing in my blog.

step 1:

create asp grid control with binding dummy value.

step 2:

<asp:GridView ID="grView" runat="server" AutoGenerateColumns="false"
onprerender="grView_PreRender">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<div id="lblDiv" runat="server">
<asp:Label ID="lblID" runat="server" Text='<%# Eval("Empid") %>'></asp:Label>
</div>
<div id="txtDiv" style="display:none" runat="server">
<asp:TextBox ID="txtID" runat="server" Text='<%# Eval("Empid") %>'></asp:TextBox>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

step 3:

DataTable DT = new DataTable();
DataColumn dc1 = new DataColumn("Empid");
DataColumn dc2 = new DataColumn("Empname");
DataColumn dc3 = new DataColumn("EmpSalary");
DataColumn dc4 = new DataColumn("EmpAddress");
DT.Columns.Add(dc1);
DT.Columns.Add(dc2);
DT.Columns.Add(dc3);
DT.Columns.Add(dc4);
DataRow DR;
for (int i = 0; i <>
{
DR = DT.NewRow();
DR["Empid"] = i.ToString();
DR["Empname"] = "Bala";
DR["Empid"] = "Salary";
DR["Empid"] = "Address";
DT.Rows.Add(DR);
}
grView.DataSource = DT;
grView.DataBind();

step 4:

Calling javascript for the cell through.

protected void grView_PreRender(object sender, EventArgs e)
{
foreach (GridViewRow dr in grView.Rows)
{
Label lbl = (Label)dr.FindControl("lblID");
lbl.ID = "lblID";
lbl.Attributes.Add("onclick", "javascript:lbltoTxt(this)");
TextBox txt = (TextBox)dr.FindControl("txtID");
txt.Attributes.Add("onblur", "javascript:txttoLbl(this)");
}
}

Step 5:
<script language="javascript">
function lbltoTxt(obj)
{
var divtxtObj = document.getElementById(obj.id.replace('lblID', 'txtDiv'));
var txtObj = document.getElementById(obj.id.replace('lblID', 'txtID'));
if (divtxtObj != null)
{
if (divtxtObj.style.display == "none")
{
divtxtObj.style.display = "block";
txtObj.focus();
}
}
var divlblObj = document.getElementById(obj.id.replace('lblID', 'lblDiv'));
if (divlblObj != null)
{
if (divlblObj != null)
{
divlblObj.style.display = "none"
}
}
}
function txttoLbl(obj) {
var divlblObj = document.getElementById(obj.id.replace('txtID', 'lblDiv'));
var lblObj = document.getElementById(obj.id.replace('txtID', 'lblID'));
if (divlblObj != null) {
if (divlblObj.style.display == "none") {
divlblObj.style.display = "block";
lblObj.innerText = obj.value;
}
}
var divtxtObj = document.getElementById(obj.id.replace('txtID', 'txtDiv'));
if (divtxtObj != null) {
if (divtxtObj != null) {
divtxtObj.style.display = "none"
}
}
}
</script>






Wednesday, August 12, 2009

What is the use of "Canvas" Controls?????

Canvas is one of the layout control for the silverlight. This is just like container will contain the controls.

In silverlight wright now we have three layout controls. The layout types are as given below.

1)Canvas.
2)StackPanel.
3)Grid.


My first feel with Silverlight

first of all have to say thanks to microsoft to developing this kind of product.

I have started learning about the silverlight. it's nearly nice to see in the browser with rich user experience. Really interesting to learn all new controls and new way of approuch. This is really very good treat for dotnet developer.

Let's start learning with next generation technology.




Monday, August 10, 2009

javascript listbox problem

just thought of sharing this info with everyone. I am writing in my blog.

Every one no about list box control in the asp.net controls. I have tried to write javascript for selected value when enabled the multiselection for the control. In this situation am unable to get the selected value index correctly. it's coming differentyly.. post me if you know the answer..

Friday, August 7, 2009

To fire onclick event automatically on page load using Javascript

if(navigator.appName !="Microsoft Internet Explorer")
{
HTMLElement.prototype.click = function()
{
var evt = this.ownerDocument.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
this.dispatchEvent(evt);
}
}

Avoid Special Character using Javascript with Regular Expression

javascript validation for special charcter.


function checkSpecial(obj,objEvent)
{
var specialChar = "^[A-Za-z0-9_]+$" //regular expression defining a 5 digit number
var objVal = obj.value;
var objVallen = obj.value.length;
if (objVal != "")
{
if (objVal.search(specialChar) == -1) //if match failed
{
if (objEvent == "keyup") {
if (objVallen > 1) {
obj.value = objVal.substring(0, parseInt(objVallen) - 1);
}
else {
obj.value = "";
}
}
else {
obj.value = "";
}
alert("Invalid character");
obj.focus();
}
}
}

Monday, July 13, 2009

Fileupload control not working with in updatepanel

I have found the problem, while accessing the fileupload control with in update panel. selected file path get cleared when postback.. i have found one solution for that problem. let me explain the solution with example.

i have used one asp hidden control, using javascript before postback am assigning the path in to hidden control. while accessing server side am getting the path from hidden contrl.

Let's go through the sample.

Aspx Code

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">
</asp:ScriptManager>
<asp:UpdatePanel ID="upDate" runat="server">
<ContentTemplate>
<asp:FileUpload ID="fileUpload" runat="server" />
<asp:Button ID="btnSave" runat="server" onclick="btnSave_Click" />
<asp:HiddenField ID="hidFileName" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>

Javascript:

function fileUploads(objGetId, objHidId) {
var objfile = document.getElementById(objGetId);
var objhid = document.getElementById(objHidId);
if (objfile != null) {
objhid.value = objfile.value;
}
}

C# Code

protected void Page_Load(object sender, EventArgs e)
{

btnSave.Attributes.Add("onclick", "javascript:fileUploads('fileUpload','"+hidFileName.ClientID+"')");
// string test = fileUpload.FileName;

}

protected void btnSave_Click(object sender, EventArgs e)
{
string test = hidFileName.Value;
}



ExcelDataReader

hi guys, This is one of the best approuch for converting excel in to dataset. I am using this in our project. This exceldatareader will read very faster than any other approach so far.

So that we are using in our project. Its very good approach.. let's download in the below url


http://www.codeplex.com/ExcelDataReader


Then include in your project. Just include in your project as a DLL. Then access all the classes.









Parent Child Display using Asp.net 2.0



I have comeacross some of friends needed this code to create parent and child combination in the webpage.

So thought of sharing them have created sample code for displaying the parent and child combination.

I am using Parent control as a Repeater control and child as a Gridview control.

Please go throgh the example:

Aspx Code:

<asp:Repeater ID="grdMulti" runat="server" OnItemDataBound="grdMulti_RowDataBound">
<ItemTemplate>
<table width="100%" border="1" style="border-style:solid">
<tr>
<td>
<table width="100%">
<tr>
<td>
<img id="imgExpand" runat="server" src="Image/add_up.gif" onclick="javascript:showChild(this)"
style="vertical-align: top" />
<img id="imgCollapse" runat="server" src="Image/del_up.gif" onclick="javascript:showChild(this)"
style="display: none; vertical-align: top" />
</td>
<td>
<asp:Label ID="lblServiceAddress" runat="server" Text='<%# Eval("ServiceId") %>'></asp:Label>
</td>
<td>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("ServiceName") %>'></asp:Label>
</td>
<td>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("ServiceAddress") %>'></asp:Label>
</td>
</tr>
</table>
</td>
</tr>
<tr id="ShowRow" runat="server" style="display:none">
<td>
<table width="100%">
<tr>
<td>
<div id="Show" runat="server" style="display: none">
<asp:GridView ID="grdChild" runat="server" Width="100%">
</asp:GridView>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>


Javscript:

<script language="javascript">
function showChild(obj) {
var imgId = obj.id, grdId, grdObj, objImg = document.getElementById(imgId), imgChangeId, imgChangeObj, rowid;
if (obj.id.indexOf('Expand') > 0) {
grdId = obj.id.replace('imgExpand', 'Show');
rowid = obj.id.replace('imgExpand', 'ShowRow');
imgChangeId = obj.id.replace('imgExpand', 'imgCollapse');
imgChangeObj = document.getElementById(imgChangeId);
grdObj = document.getElementById(grdId);
rowobj=document.getElementById(rowid);
if (objImg != null) {
objImg.style.display = 'none'
}
if (grdObj != null) {
grdObj.style.display = 'block'
}
if (imgChangeObj != null) {
imgChangeObj.style.display = 'block';
}
if (rowobj != null) {
rowobj.style.display = 'block';
}
}
else {
grdId = obj.id.replace('imgCollapse', 'Show');
rowid = obj.id.replace('imgExpand', 'ShowRow');
imgChangeId = obj.id.replace('imgCollapse', 'imgExpand');
imgChangeObj = document.getElementById(imgChangeId);
grdObj = document.getElementById(grdId);
rowobj = document.getElementById(rowid);
if (grdObj != null) {
grdObj.style.display = 'none'
}
if (objImg != null) {
objImg.style.display = 'none'
}
if (imgChangeObj != null) {
imgChangeObj.style.display = 'block';
}
if (rowobj != null) {
rowobj.style.display = 'none';
}
}
}
</script>

C#

public partial class MultiGrid : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable DTParent = new DataTable();
DataColumn dc1 = new DataColumn("ServiceId");
DataColumn dc2 = new DataColumn("ServiceName");
DataColumn dc3 = new DataColumn("ServiceAddress");

DTParent.Columns.Add(dc1);
DTParent.Columns.Add(dc2);
DTParent.Columns.Add(dc3);
DataRow DR = null;
for (int i = 0; i <>
{
DR = DTParent.NewRow();
DR[0] = i.ToString();
DR[1] = "bal";
DR[2] = "Address";
DTParent.Rows.Add(DR);
}
grdMulti.DataSource = DTParent;
grdMulti.DataBind();
}

}

protected void grdMulti_RowDataBound(object sender, RepeaterItemEventArgs e)
{
GridView GRDChild = (GridView)e.Item.FindControl("grdChild");
if (GRDChild != null)
{
DataTable DTChild = new DataTable();
DataColumn dc1 = new DataColumn("ServiceId");
DataColumn dc2 = new DataColumn("ServiceName");
DataColumn dc3 = new DataColumn("ServiceAddress");

DTChild.Columns.Add(dc1);
DTChild.Columns.Add(dc2);
DTChild.Columns.Add(dc3);
DataRow DR = null;
for (int i = 0; i <>
{
DR = DTChild.NewRow();
DR[0] = i.ToString();
DR[1] = "bal";
DR[2] = "Address";
DTChild.Rows.Add(DR);
}
GRDChild.DataSource = DTChild;
GRDChild.DataBind();
}
}
}