About Me

My photo
a Dynamic and Energetic guy.....

Thursday, October 29, 2009



When we add controls dynamically, we are getting error like this.
Then we have to add this code to .ASPX file's code

public override void VerifyRenderingInServerForm(Control control)
{
Confirms that an HtmlForm control is rendered for the
specified ASP.NET server control at run time.
No code required here.
}


Then we are all works fine :) :) :)

read a .CSV file & create a dataset

protected void CreateImportDataSet()
{
if (FileUpload1.PostedFile.FileName == string.Empty)
{ lblMsg.Visible = true; return; }

else
{
//restrict user to upload other file extenstion
string[] FileExt = FileUpload1.FileName.Split('.');
string FileEx = FileExt[FileExt.Length - 1];
if (FileEx.ToLower() == "csv")
{

}
else { lblMsg.Visible = true; return; }
}

ArrayList counterOfUnNecessaryColumns = new ArrayList();

//create object for CSVReader and pass the stream
CSVReader reader = new CSVReader(FileUpload1.PostedFile.InputStream);
//get the header
string[] headers = reader.GetCSVLine(counterOfUnNecessaryColumns, 0);
DataTable dt = new DataTable();

ArrayList necessaryHeaders = new ArrayList();
necessaryHeaders.Add("First Name");
necessaryHeaders.Add("Middle Name");
necessaryHeaders.Add("Last Name");
necessaryHeaders.Add("Job Title");
necessaryHeaders.Add("E-mail Address");

necessaryHeaders.Add("Business Street");
necessaryHeaders.Add("Business City");
necessaryHeaders.Add("Business State");
necessaryHeaders.Add("Business Postal Code");
necessaryHeaders.Add("Mobile Phone");
necessaryHeaders.Add("Home Phone");

//add headers
for (int counter = 0; counter < headers.Length; counter++)
{
if (necessaryHeaders.Contains(headers[counter]))
{
dt.Columns.Add(headers[counter]);

}
else
{
counterOfUnNecessaryColumns.Add(counter);
}
}
dt.Columns.Add("PersonIndex");

string[] data;
int personIndex = 0;
while ((data = reader.GetCSVLine(counterOfUnNecessaryColumns, personIndex)) != null)
{
dt.Rows.Add(data);
personIndex++;
}
gv.DataSource = dt;
gv.DataBind();

dt.TableName = "MyContacts";
dt.WriteXml(@"D:/mad.xml");
Session["CsvDataSet"] = dt;
}

=====================================Base Class ====================================

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;
using System.Collections;

public class CSVReader
{
private Stream objStream;
private StreamReader objReader;

//add name space System.IO.Stream
public CSVReader(Stream filestream) : this(filestream, null) { }

public CSVReader(Stream filestream, Encoding enc)
{
this.objStream = filestream;
//check the Pass Stream whether it is readable or not
if (!filestream.CanRead)
{
return;
}
objReader = (enc != null) ? new StreamReader(filestream, enc) : new StreamReader(filestream);
}


//parse the Line
public string[] GetCSVLine(ArrayList counterOfNecessaryColumns,int personIndex)
{
string data = objReader.ReadLine();
if (data == null) return null;
if (data.Length == 0) return new string[0];

ArrayList result = new ArrayList();
//parsing CSV Data
ParseCSVData(result, data, counterOfNecessaryColumns,personIndex);
return (string[])result.ToArray(typeof(string));
}

private void ParseCSVData(ArrayList result, string data, ArrayList counterOfNecessaryColumns,int personIndex)
{
int position = -1;
while (position < data.Length)
result.Add(ParseCSVField(ref data, ref position));

//Removing Unnecessary columns
for (int i = 0; i < counterOfNecessaryColumns.Count; i++)
{
try
{
result.RemoveAt(int.Parse(counterOfNecessaryColumns[i].ToString()) - i);
}
catch { }
}
result.Add(personIndex.ToString());
}

private string ParseCSVField(ref string data, ref int StartSeperatorPos)
{
if (StartSeperatorPos == data.Length - 1)
{
StartSeperatorPos++;
return "";
}

int fromPos = StartSeperatorPos + 1;
if (data[fromPos] == '"')
{
int nextSingleQuote = GetSingleQuote(data, fromPos + 1);
int lines = 1;
while (nextSingleQuote == -1)
{
data = data + "\n" + objReader.ReadLine();
nextSingleQuote = GetSingleQuote(data, fromPos + 1);
lines++;
if (lines > 20)
throw new Exception("lines overflow: " + data);
}
StartSeperatorPos = nextSingleQuote + 1;
string tempString = data.Substring(fromPos + 1, nextSingleQuote - fromPos - 1);
tempString = tempString.Replace("'", "''");
return tempString.Replace("\"\"", "\"");
}

int nextComma = data.IndexOf(',', fromPos);
if (nextComma == -1)
{
StartSeperatorPos = data.Length;
return data.Substring(fromPos);
}
else
{
StartSeperatorPos = nextComma;
return data.Substring(fromPos, nextComma - fromPos);
}
}

private int GetSingleQuote(string data, int SFrom)
{
int i = SFrom - 1;
while (++i < data.Length)
if (data[i] == '"')
{
if (i < data.Length - 1 && data[i + 1] == '"')
{
i++;
continue;
}
else
return i;
}
return -1;
}
}

Thursday, October 22, 2009

Wednesday, October 21, 2009

Diffrence between WebSite & WebApplication projects in .NET

A web site is just a group of all files in a folder and sub folders.

There is no project file.

All files under the specific folder - including your word documents, text files, images etc are part of the web site.

We have to deploy all files including source files (unless you pre compile them) to the server.

Files are compiled dynamically during run time.

There will be no single assembly created and you will nto see a "Bin" folder.

The benefits of this model is, you do not need a project file or virtual directory to open a project.

Disadvantage is, all files under the folder and considered to be part of the web site[since there is no project file].

The only way you can exclude a file from the website within the same directory is by renaming them with the extension .exclude

Friday, October 9, 2009

Sharepoint in Sinhala

Many developers had difficulties to implement Sharepoint in their own language.
In srilanka we had same issue.
So we worked hard & finally we got the results.







Monday, September 7, 2009

Sharepoint Webpart Concepts

In order to create WSS-style Web Parts, you must have a dependency on the Microsoft.SharePoint.dll and you must inherit from the WebPart base class in the Microsoft.SharePoint.WebPartPages namespace.

In order to create ASP.NET-style Web Parts, you have a dependency on System.Web.dll and inherit from a base class named WebPart in the System.Web.UI.WebControls.WebParts namespace.

When creating WSS 3.0 Web Part pages, you should use the WebPartZone control defined in the Microsoft.SharePoint.WebPartPages namespace. You do not want to use the WebPartZone control contained within ASP.NET 2.0.



Different controls contained in a WSS-style Web Part page


The preferred way to create Web Parts for WSS 3.0 sites is to create the ASP.NET style WebParts. As discussed before, this means inheriting from the WebPart base class in the System.Web.UI.WebControls.WebParts namespace and overriding the RenderContents method.

Sunday, September 6, 2009

Sharepoint Standard Versus Enterprise Edition

MOSS 2007 comes in both Standard and Enterprise Editions. Based on the needs we can choose to implement Standard Edition and upgrade to Enterprise Edition at a later time, or
immediately implement Enterprise Edition with all of its additional features.
Although there are many small differences between the two editions, the following are
the significant features included in Enterprise Edition but not in Standard Edition:

Excel Services
This feature provides access to Excel spreadsheets through a web browser and
offloads the calculations to the server. It makes only specific areas of the spreadsheet
visible to users, and ensures that there is “one version of the truth,” since
only specified users can modify the underlying data.

Report Center
This is a site provided out of the box that has been designed to simplify the management
of reports and data connections.

Business Data Catalog
This feature is a simplified way to bring data from external sources into Share-
Point without costly custom development. With it, users do not need to access
multiple systems to view the data they need—it is all available from one common
interface provided by MOSS.

Business Data Search
This feature allows users to search data that has been stored in separate systems
exposed through MOSS (such as those connected via the Business Data Catalog).

Forms Services
You can create forms within Microsoft Office InfoPath 2007 and publish them to
SharePoint using Forms Services, allowing users without the InfoPath client to
complete forms entirely through their web browsers.

Sunday, August 30, 2009

Usefull code samples in C#

// Getting the pressed key
if ((e.KeyCode == System.Windows.Forms.Keys.Enter))
{
// Code for the "Enter" key
}


//Check Other Name that has Mr. & "Spaces"
public static bool IsOtherName(string strOtherName)
{
Regex Pattern = new Regex("[^a-zA-Z\\.\\ ?]");
return !Pattern.IsMatch(strOtherName);
}

// String format for "Money"
String.Format("{0:0,0.00}", objRenewal.policy.dblPremium.ToString())

My Masters