Wednesday, February 27, 2013

This Example explains How To Implement Drag And Drop GridView Rows Functionality Using JQuery JavaScript In Asp.Net 2.0 3.5 4.0 To Rearrange Row On Client Side.

You need to download and add JQuery and TableDnD plugin in your application.

GridView is populated with Northwind database using SqlDataSource.

Drag Drop Gridview Rows Using JQuery


Add Script references and css style in head section of page.

   1:  <style type="text/css">
   2:     .highlight
   3:      {
   4:          color : White !important;
   5:          background-color : Teal !important;
   6:      }
   7:  </style>
   8:  <script src="jquery-1.7.1.js" type="text/javascript"/>
   9:  <script src="jquery.tablednd.0.7.min.js" type="text/javascript"/>

Call tableDnD function of drag and drop plugin by passing Gridview Id.

   1:  <script type="text/javascript" language="javascript">
   2:  $(document).ready(function() 
   3:  {
   4:  $("#<%=GridView1.ClientID%>").tableDnD(
   5:              {
   6:                  onDragClass: "highlight"
   7:              });
   8:  });
   9:  </script>
  10:  </head>

   1:  <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
   2:                AutoGenerateColumns="False" DataKeyNames="OrderID" 
   3:                DataSourceID="SqlDataSource1">
   4:  <Columns>
   5:  <asp:BoundField DataField="OrderID" HeaderText="OrderID"/>
   6:  <asp:BoundField DataField="Freight" HeaderText="Freight"/>
   7:  <asp:BoundField DataField="ShipName" HeaderText="ShipName"/>
   8:  <asp:BoundField DataField="ShipCity" HeaderText="ShipCity"/>
   9:  <asp:BoundField DataField="ShipCountry" HeaderText="ShipCountry"/>
  10:  </Columns>
  11:  </asp:GridView>

This post explains how to Publish And Deploy Asp.Net Web Site Application On IIS7 Server.

Open Application in Visual Studio, Click on Build > Publish Web Site.


Publish Asp.Net Web Site Application In Visual Studio


Browse to where you want to save published DLLs,Files and other aspx pages. (TestWebSite) 


Deploy Asp.Net WebSite On IIS Server


Copy TestWebSite folder inside C:\inetpub/wwwroot directory.


Click on Start Menu > Run > INETMGR to open IIS manager.

Click on sites > Default Web Site.

Right Click on folder we copied and Select Convert To Application.


Create new pool by right clicking on Application pools.


Create Application Pool On IIS




Go to Advance settings


Change Identity property to Local System.



Right Click On TestWebSite Application > Manage Application > Advance Settings.


Assign Application Pool we created earlier to this web App.



Open Internet browser and type http://localhost/testwebsite to browse your website application.

This example explains How To Create Cascading ComboBox Dependent On One Another In WinForms Windows Forms Applications Using C# And VB.Net.


I have used Country, State, City tables from database to populate respective cascading combobox based on selection of country and state.


Drag 3 combobox controls from toolbar on the windows form, write following code to populate comboboxes.

Table schemas are shown below.

Cascading Combobox In Winforms Windows Forms C# VB



Write connection string in app.config file
<configuration>
<connectionStrings>
<add name="connectionString"
     connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Cascading.mdf;Integrated Security=True;User Instance=True"
     providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>


Bind Country ComboBox when Form loads
01using System;
02using System.Data;
03using System.Windows.Forms;
04using System.Configuration;
05using System.Data.SqlClient;
06 
07namespace CascadingComboBox
08{
09    public partial class Form1 : Form
10    {
11        string strConn = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
12        public Form1()
13        {
14            InitializeComponent();
15        }
16 
17        private void Form1_Load(object sender, EventArgs e)
18        {
19            FillCountry();
20        }
21        private void FillCountry()
22        {
23            SqlConnection con = new SqlConnection(strConn);
24            SqlCommand cmd = new SqlCommand();
25            cmd.Connection = con;
26            cmd.CommandType = CommandType.Text;
27            cmd.CommandText = "SELECT CountryID, CountryName FROM Country";
28            DataSet objDs = new DataSet();
29            SqlDataAdapter dAdapter = new SqlDataAdapter();
30            dAdapter.SelectCommand = cmd;
31            con.Open();
32            dAdapter.Fill(objDs);
33            con.Close();
34            cmbCountry.ValueMember = "CountryID";
35            cmbCountry.DisplayMember = "CountryName";
36            cmbCountry.DataSource = objDs.Tables[0];
37        }
38    }
39}


Populate State and City combobox in SelectedIndexChanged event of country,State combobox based on selected IDs
01private void cmbCountry_SelectedIndexChanged(object sender, EventArgs e)
02        {
03            if (cmbCountry.SelectedValue.ToString() != "")
04            {
05                int CountryID = Convert.ToInt32(cmbCountry.SelectedValue.ToString());
06                FillStates(CountryID);
07                cmbCity.SelectedIndex = 0;
08            }
09        }
10 
11        private void FillStates(int countryID)
12        {
13            SqlConnection con = new SqlConnection(strConn);
14            SqlCommand cmd = new SqlCommand();
15            cmd.Connection = con;
16            cmd.CommandType = CommandType.Text;
17            cmd.CommandText = "SELECT StateID, StateName FROM State WHERE CountryID =@CountryID";
18            cmd.Parameters.AddWithValue("@CountryID", countryID);
19            DataSet objDs = new DataSet();
20            SqlDataAdapter dAdapter = new SqlDataAdapter();
21            dAdapter.SelectCommand = cmd;
22            con.Open();
23            dAdapter.Fill(objDs);
24            con.Close();
25            if (objDs.Tables[0].Rows.Count > 0)
26            {
27                cmbState.ValueMember = "StateID";
28                cmbState.DisplayMember = "StateName";
29                cmbState.DataSource = objDs.Tables[0];
30            }
31 
32        }
33 
34        private void cmbState_SelectedIndexChanged(object sender, EventArgs e)
35        {
36            int StateID = Convert.ToInt32(cmbState.SelectedValue.ToString());
37            FillCities(StateID);
38        }
39 
40        private void FillCities(int stateID)
41        {
42            SqlConnection con = new SqlConnection(strConn);
43            SqlCommand cmd = new SqlCommand();
44            cmd.Connection = con;
45            cmd.CommandType = CommandType.Text;
46            cmd.CommandText = "SELECT CityID, CityName FROM City WHERE StateID =@StateID";
47            cmd.Parameters.AddWithValue("@StateID", stateID);
48            DataSet objDs = new DataSet();
49            SqlDataAdapter dAdapter = new SqlDataAdapter();
50            dAdapter.SelectCommand = cmd;
51            con.Open();
52            dAdapter.Fill(objDs);
53            con.Close();
54            if (objDs.Tables[0].Rows.Count > 0)
55            {
56                cmbCity.DataSource = objDs.Tables[0];
57                cmbCity.DisplayMember = "CityName";
58                cmbCity.ValueMember = "CItyID";
59 
60            }
61 
62        }


VB.NET CODE
01Private Sub Form1_Load(sender As Object, e As EventArgs)
02 FillCountry()
03End Sub
04Private Sub FillCountry()
05 Dim con As New SqlConnection(strConn)
06 Dim cmd As New SqlCommand()
07 cmd.Connection = con
08 cmd.CommandType = CommandType.Text
09 cmd.CommandText = "SELECT CountryID, CountryName FROM Country"
10 Dim objDs As New DataSet()
11 Dim dAdapter As New SqlDataAdapter()
12 dAdapter.SelectCommand = cmd
13 con.Open()
14 dAdapter.Fill(objDs)
15 con.Close()
16 cmbCountry.ValueMember = "CountryID"
17 cmbCountry.DisplayMember = "CountryName"
18 cmbCountry.DataSource = objDs.Tables(0)
19End Sub
20 
21Private Sub cmbCountry_SelectedIndexChanged(sender As Object, e As EventArgs)
22 If cmbCountry.SelectedValue.ToString() <> "" Then
23  Dim CountryID As Integer = Convert.ToInt32(cmbCountry.SelectedValue.ToString())
24  FillStates(CountryID)
25  cmbCity.SelectedIndex = 0
26 End If
27End Sub
28 
29Private Sub FillStates(countryID As Integer)
30 Dim con As New SqlConnection(strConn)
31 Dim cmd As New SqlCommand()
32 cmd.Connection = con
33 cmd.CommandType = CommandType.Text
34 cmd.CommandText = "SELECT StateID, StateName FROM State WHERE CountryID =@CountryID"
35 cmd.Parameters.AddWithValue("@CountryID", countryID)
36 Dim objDs As New DataSet()
37 Dim dAdapter As New SqlDataAdapter()
38 dAdapter.SelectCommand = cmd
39 con.Open()
40 dAdapter.Fill(objDs)
41 con.Close()
42 If objDs.Tables(0).Rows.Count > 0 Then
43  cmbState.ValueMember = "StateID"
44  cmbState.DisplayMember = "StateName"
45  cmbState.DataSource = objDs.Tables(0)
46 End If
47 
48End Sub
49 
50Private Sub cmbState_SelectedIndexChanged(sender As Object, e As EventArgs)
51 Dim StateID As Integer = Convert.ToInt32(cmbState.SelectedValue.ToString())
52 FillCities(StateID)
53End Sub
54 
55Private Sub FillCities(stateID As Integer)
56 Dim con As New SqlConnection(strConn)
57 Dim cmd As New SqlCommand()
58 cmd.Connection = con
59 cmd.CommandType = CommandType.Text
60 cmd.CommandText = "SELECT CityID, CityName FROM City WHERE StateID =@StateID"
61 cmd.Parameters.AddWithValue("@StateID", stateID)
62 Dim objDs As New DataSet()
63 Dim dAdapter As New SqlDataAdapter()
64 dAdapter.SelectCommand = cmd
65 con.Open()
66 dAdapter.Fill(objDs)
67 con.Close()
68 If objDs.Tables(0).Rows.Count > 0 Then
69  cmbCity.DataSource = objDs.Tables(0)
70  cmbCity.DisplayMember = "CityName"
71 
72  cmbCity.ValueMember = "CItyID"
73 End If
74 
75End Sub


Build and run the application.

ComboBox In Winforms C# VB.NET Cascading Dependent on one another