Outside Computers

Sunday, October 14, 2012

Bind dynamically items in dropdownlists

In this tutorial I will show you how to bind items dynamically in dropdownlist.

in this example, i have used hyperlinks and bind the selected link in a single dropdownlist
I have used query string  for passing the value in the dropdownlist to show what items to be displayed.
you can also use session variables and also cookies for binding items on the list.

this is WebForm1.aspx

protected void Page_Load(object sender, EventArgs e)
        {
            createNavUrls();
        }
        private void createNavUrls()
        {
         
                HyperLink1.NavigateUrl = @"WebForm2.aspx?Option=1";
           
                HyperLink2.NavigateUrl = @"WebForm2.aspx?Option=2";
         
                HyperLink3.NavigateUrl = @"WebForm2.aspx?Option=3";
        }

this piece of code shows, when the page load, the code will call the createNavUrls(), that adds the navigate url links and shows the query string,, upon selecting on the links it has corresponding values,1,2,3 and the query string name is "Option".

WebForm2.aspx

 protected void Page_Load(object sender, EventArgs e)
        {
            filllist(Convert.ToInt32(Request.QueryString["Option"]));
        }
        private void filllist(int option)
        {
            ddlOptions.Items.Clear();
            if (option == 1)
            {
                ddlOptions.Items.Add("a1");
                ddlOptions.Items.Add("a2");
                ddlOptions.Items.Add("a3");
            }
            else if (option == 2)
            {
                ddlOptions.Items.Add("b4");
                ddlOptions.Items.Add("b5");
                ddlOptions.Items.Add("b6");
            }
            else if (option == 3)
            {
                ddlOptions.Items.Add("c7");
                ddlOptions.Items.Add("c8");
                ddlOptions.Items.Add("c9");
            }
        }

on the other hand, the second page will load, the selected hyperlink's value,

on the page load , the Request.QueryString["Option"], this will read the value given by the 1st page,
then on the method fill,  this will add the items that is selected on the desired input.

here is the sample url of the page.
"http://localhost:56594/WebForm2.aspx?Option=1"

Option is the querystring name and 1 is the value


i hope this code helps.






Tuesday, October 2, 2012

Adding table to a session

On this post I will show you ,how to add a table to a session and even add a new record, just like a Shopping cart in online shopping websites.

Here is a sample code for adding a table to a session and then rebinding it just like in shopping carts
private void GetData()
{
     try
        {
        DataRow[] dr = null;
        if (ViewState["SelectedRecords"] != null)
       {
            dt = (DataTable)ViewState["SelectedRecords"];
       }
       else
       {
            dt = CreateDataTable();    1:
        }
2
CheckBox chkAll = (CheckBox)gvAll.HeaderRow.Cells[0].FindControl("chkAll");
for (int i = 0; i < gvAll.Rows.Count; i++)
{
if (chkAll.Checked)
{
dt = AddRow(gvAll.Rows[i], dt);
}
else
{
CheckBox chk = (CheckBox)gvAll.Rows[i].Cells[0].FindControl("chk");
if (chk.Checked)
{
dt = AddRow(gvAll.Rows[i], dt);
}
else
{
dt = RemoveRow(gvAll.Rows[i], dt);
}
}
}
3.
ViewState["SelectedRecords"] = dt;
dtall = dt.Copy();
Session["CombineRecord"] = dtall;
}
catch (Exception ex)
{
}
this is your main method on how to add or remove items in your datatable, in this example I bound it to a gridview, which have a checkbox for adding or deleting items, this depends on the button clicked

1: means create a datatable
here is the code for creating a datatable
private DataTable CreateDataTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("ItemCode");
dt.Columns.Add("ItemDesc");
dt.AcceptChanges();
return dt;
}
2: this part shows what is the behavior if the checkbox is selected and what button is clicked, either add or remove, 
3: this part shows after selecting after modifying the datatable, you will then pass it to the viewstate named selectedrecords to hold it,
then dtall=dt.copy(); means that all records in the datatable dt is copied and moved to datatable named dtall
where dtall will either have an existing record or a new record
then pass dtall datatable to a session variable so that it will not be disposed after

After this,

private void BindSecondaryGrid()
{
gvCart.DataSource = (DataTable)Session["CombineRecord"];
gvCart.DataBind();
}
convert to datatable the session variable and bind it to your gridview.

This summarizes the passing of values to a session just like in Shopping cart