Wednesday 1 April 2015

Cascading Dropdownlist with viewstate (ASP.NET and C#)

Here I am going explain about Cascading Dropdownlist with viewstate (which will retain the last value even on postback)

ASP.NET CODE

 <asp:DropDownList ID="ddlcategory" runat="server" AutoPostBack="true"
        CssClass="mydropdown" Width="120px" EnableViewState="true" 
          onselectedindexchanged="ddlcategory_SelectedIndexChanged">
        <asp:ListItem Value="%">All</asp:ListItem>
    </asp:DropDownList>
    
</asp:Label>
    <asp:DropDownList ID="ddltodf" runat="server" AutoPostBack="true"
        CssClass="mydropdown" Width="120px" EnableViewState="true">
        <asp:ListItem Value="%">All</asp:ListItem>

    </asp:DropDownList>

C# CODE

using (OleDbConnection DDLCon = new OleDbConnection(AZRKC))
        {
            //ViewStates
            ViewState["DDLCategory"] = ddlcategory.SelectedValue.ToString();
            ViewState["DDLDataFile"] = ddltodf.SelectedValue.ToString();
            //End of View states

            string SDDLCategory;
            string SDDLDataFile;

            SDDLCategory = "Select DISTINCT Category from AZRKC where TODF like '" + ddltodf.SelectedValue.ToString() + "' and SOData like '" + ddlsod.SelectedValue.ToString() + "' and Years like '" + ddlyear.SelectedValue.ToString() + "' and Months like '" + ddlmonth.SelectedValue.ToString() + "' and Uploaded like '" + ddluploaded.SelectedValue.ToString() + "'";

            SDDLDataFile = "Select DISTINCT [TODF] from AZRKC where Category like '" + ddlcategory.SelectedValue.ToString() + "' and SOData like '" + ddlsod.SelectedValue.ToString() + "' and Years like '" + ddlyear.SelectedValue.ToString() + "' and Months like '" + ddlmonth.SelectedValue.ToString() + "' and Uploaded like '" + ddluploaded.SelectedValue.ToString() + "'";

DDLCon.Close();
            DDLCon.Open();

            //Category data bindings
            OleDbCommand CMDCategory = new OleDbCommand(SDDLCategory, DDLCon);
            ddlcategory.Items.Clear();
            ddlcategory.DataSource = CMDCategory.ExecuteReader();
            ddlcategory.DataTextField = "Category";
            ddlcategory.DataValueField = "Category";
            ddlcategory.DataBind();
            ddlcategory.Items.Insert(0, new ListItem("All", "%"));
            if (ViewState["DDLCategory"] != null)
            {
                ddlcategory.SelectedValue = ViewState["DDLCategory"].ToString();
            }
            //End of Category data bindings

            //Type DataFile bindings
            OleDbCommand CMDDataFile = new OleDbCommand(SDDLDataFile, DDLCon);
            ddltodf.Items.Clear();
            ddltodf.DataSource = CMDDataFile.ExecuteReader();
            ddltodf.DataTextField = "TODF";
            ddltodf.DataValueField = "TODF";
            ddltodf.DataBind();
            ddltodf.Items.Insert(0, new ListItem("All", "%"));
            if (ViewState["DDLDataFile"] != null)
            {
                ddltodf.SelectedValue = ViewState["DDLDataFile"].ToString();
            }

            //End of DataFile bindings

 DDLCon.Close();

        }

HOPE THIS WILL HELP YOU, IF YOU HAVE ANY QUERY PLEASE REVERT

Send eMail by using Gridview data (ASP.NET AND C#)

Here I am explaining about how to send eMail of Gridview data via ASP.NET and C#

C# CODE

CLASS LIBRARY

using System.Net;

using System.Net.Mail;

 using (StringWriter sw = new StringWriter())
        {
            using (HtmlTextWriter hw = new HtmlTextWriter(sw))
            {
                gvcsbytime.RenderControl(hw);
                StringReader sr = new StringReader(sw.ToString());
                MailMessage mm = new MailMessage("from@mail.in", "to@mail.in");
                mm.Subject = "Calls Status as on " + DateTime.Now.Date.Day + "-" + DateTime.Now.Date.Month + "-" + DateTime.Now.Date.Year + " " + DateTime.Now.TimeOfDay.Hours + "-" + DateTime.Now.TimeOfDay.Minutes + "-" + DateTime.Now.TimeOfDay.Seconds;
                mm.Body = "Dear " + Session["Query"].ToString() + ", <br> <br> Please find below the Calls status as on " + DateTime.Now.Date.Day + "-" + DateTime.Now.Date.Month + "-" + DateTime.Now.Date.Year + " " + DateTime.Now.TimeOfDay.Hours + "-" + DateTime.Now.TimeOfDay.Minutes + "-" + DateTime.Now.TimeOfDay.Seconds + "<hr/>" + sw.ToString() + "<br> <br> This is a self generated mail. Please do not reply on this ID <br> <br> MIS";
                mm.IsBodyHtml = true;
                SmtpClient smtp = new SmtpClient();
                smtp.Host = "smtp.bizmail.yahoo.com";
                smtp.EnableSsl = true;
                System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
                NetworkCred.UserName = "from@mail.in";
                NetworkCred.Password = "password";
                smtp.UseDefaultCredentials = true;
                smtp.Credentials = NetworkCred;
                smtp.Port = 587;
                smtp.Send(mm);
            }

        }

Hope this will help you, if you have any query please revert.

asp.net c# live search on gridview by selected fields

In my previous post I explained about selected fields to show in Gridview, now I am going to explain how to filter the data by selected fields using textbox.

asp.net code

<select id="selectfields2" name="selectfields" data-width="100%" multiple class="selectpicker show-tick" data-live-search="true" data-style="btn-danger" title="Select fields" enableviewstate="true">
                            <option value="*">Select All</option>
                            <option value="Address">Address</option>
                            
                        </select>

<asp:TextBox ID="txtfilter" runat="server" OnTextChanged="txtfilter_TextChanged" AutoPostBack="true" CssClass="form-control" placeholder=" search here"></asp:TextBox>
                                    <asp:HiddenField ID="hdfields" runat="server" />

                                    <asp:HiddenField ID="hdfieldsquery" runat="server" />

C# CODE

 protected void txtfilter_TextChanged(object sender, EventArgs e)
    {
        string FieldName2 =  Page.Request.Form["selectfields"].ToString();
        string[] SplitFieldName2 = FieldName2.Split(',');
        foreach(string st in SplitFieldName2)
        {
            hdfieldsquery.Value = hdfieldsquery.Value + st + " like '%" + txtfilter.Text.ToString() + "%' or ";
        }

        if (FieldName2.ToString() != "*")
        {
            if (hdfields.Value.ToString() != "")
            {
                string SQLQuery2 = "Select * from FinalData where " + hdfieldsquery.Value.ToString() + "IDS like '%" + txtfilter.Text.ToString() + "%' or University like '%" + txtfilter.Text.ToString() + "%' or State like '%" + txtfilter.Text.ToString() + "%' order by IDS ASC";
                SqlCommand CMD = new SqlCommand(SQLQuery2);
                gv.DataSource = GetData(CMD);
                gv.DataBind();


                hdfieldsquery.Value = null;
 }

        }
}
}

Hope the above code will help you, if you have any query please revert.

Simple selected fields in Gridview using c#

Here I am going to explain you, how to show only selected fields in Gridview using dropdown and command button

Here we go: Dropdown with field names

<asp:DropDownList ID="ddlsearch" runat="server" CssClass="selectpicker show-tick pull-right" data-live-search="true">
                        <asp:ListItem Text="Field 1" Value="Field 1"></asp:ListItem>
                        <asp:ListItem Text="Field 2" Value="Field 2"></asp:ListItem>                        
                    </asp:DropDownList>

<asp:Button ID="btnsf" runat="server" CssClass="btn btn-danger" Text="Search database" OnClick="btnsf_Click" />

C# CODE

string FieldName = Page.Request.Form["selectfields"].ToString();
        string[] SplitFieldName = FieldName.Split(',');

        if (FieldName.ToString() != "*")
        {
            if (SplitFieldName.Length < 11)
            {
                BindData();

                if (FieldName.IndexOf("Field 1") != -1) { gv.Columns[3].Visible = true; } else { gv.Columns[3].Visible = false; }
                if (FieldName.IndexOf("Field 2") != -1) { gv.Columns[5].Visible = true; } else { gv.Columns[5].Visible = false; }
                
            }
            else
            {
                string Alerts = "alert('Maximum fields can be select upto 10')";
                ScriptManager.RegisterClientScriptBlock((sender as Control), this.GetType(), "alert", Alerts, true);
                gv.DataBind();

            }

I HOPE THIS WILL HELP YOU, IF YOU HAVE ANY QUERY PLEASE REVERT.

dropdown multi select with live search


Here I am going to explain how to make asp.net dropdownlist with multi select and live search using simple javascript.

define below mentioned javascript in header section

<link rel="stylesheet" href="Content/bootstrap-select.css" />
<script src="Scripts/bootstrap-select.js"></script>
<script src="Scripts/bootbox.min.js"></script>

<asp:DropDownList ID="ddlsearch" runat="server" CssClass="selectpicker show-tick" data-live-search="true">
<asp:ListItem Text="A" Value="A"></asp:ListItem>                        
</asp:DropDownList>

For data live search data-live-search="true"
For multi select just enter (multiple)

I hope this will help you, if you have any query please revert.