<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="Css/bootstrap.min.css" rel="Stylesheet" />
<link href="Bootstrap/dist/Css/jquery-ui.css" rel="stylesheet" />
<link href="Css/style.css" rel="stylesheet" />
<script src="Bootstrap/dist/Js/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="jQuery/jquery-ui.js" type="text/javascript"></script>
<script src="Bootstrap/dist/Js/jquery.jstepper.js" type="text/javascript"></script>
<script src="Bootstrap/dist/Js/bootstrap.min.js" type="text/javascript"></script>
<style>
.hidecolvalue
{
display: none;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div class="col-md-1">
<div class="form-group">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<asp:DropDownList ID="ddlState" runat="server" CssClass="form-control" AutoPostBack="false" AppendDataBoundItems="true">
<asp:ListItem Text="ALL Group Names" Value="ALL Groups">
</asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class="col-md-1">
<div class="form-group">
<asp:Button ID="btnSearch" Text="Search" runat="server" OnClick="Search_Click" CssClass="btn btn-primary btn-sm" />
</div>
</div>
<div class="col-md-1">
<button type="button" data-target="#AddState" data-toggle="modal" class="btn btn-primary btn-sm Add State" onclick="AddState();" >Add State</button>
</div>
<div id="divGrid">
<div class="row">
<div class="col-lg-12">
<asp:GridView ID="grdData" runat="server" AutoGenerateColumns="false" CssClass="table table-hover table-bordered" AllowPaging="true"
PagerSettings-PageButtonCount="3" GridLines="None" PageSize="10" OnPageIndexChanging="OnPagingChange" OnRowDataBound="grdData_RowDataBound" >
<Columns>
<asp:BoundField HeaderText="ID" DataField="ID" ItemStyle-CssClass="hidecolvalue" HeaderStyle-CssClass="hidecolvalue" />
<asp:BoundField DataField="State" HeaderText="State Name" SortExpression="StateName" />
<asp:BoundField DataField="City" HeaderText="City Name" SortExpression="CityName" />
<asp:BoundField DataField="Code" HeaderText="Code" SortExpression="Code" />
<asp:TemplateField HeaderText="#Action" ItemStyle-CssClass="display:inline">
<ItemTemplate>
<asp:Literal ID="ltrlEdit" Text="Edit" runat="server"></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle CssClass="pagination-ys" />
<EmptyDataTemplate>No Records Available</EmptyDataTemplate>
</asp:GridView>
</div>
</div>
</div>
<div class="modal fade" id="AddState" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Add State</h4>
</div>
<div class="modal-body">
<div class="form-group">
<div class="row">
<div class="col-md-2">
<label for="StateNames">StateNames</label>
</div>
<div class="col-md-9">
<asp:DropDownList ID="ddlStateName" runat="server" CssClass="form-control" AutoPostBack="false" AppendDataBoundItems="true" >
<%--<asp:ListItem Text="ALL State Names" Value="ALL Groups">
</asp:ListItem>--%>
</asp:DropDownList>
<label id="lblStateName" style="display: none; color:red"></label>
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-3">
<label for="CityNames">City Names</label>
</div>
<div class="col-md-5">
<asp:DropDownList ID="ddlCities" runat="server" CssClass="form-control" AutoPostBack="false" AppendDataBoundItems="false">
</asp:DropDownList>
<label id ="lbllist" style="display: none; color:red"></label>
</div>
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-3">
<label for="inputCode"> Code</label>
</div>
<div class="col-md-4">
<asp:TextBox ID="txtCode" onchange="funchange(this);" runat="server" CssClass="form-control" class="Test"></asp:TextBox>
<label id="lblCode" style="display: none; color: red"></label>
</div>
</div>
</div>
<div class="modal-footer">
<asp:Button ID="btnSave" runat="server" CssClass="btn btn-primary btn-sm" Text="Save" OnClientClick="return ValidateMe()"/>
<button class="btn btn-primary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
function AddState() {
$('#<%=ddlCities.ClientID%>, #<%=ddlStateName.ClientID%>,#<%=txtCode.ClientID%>').val('');
}
function ValidateMe() {
if (isNullOrEmpty($('#<%=ddlStateName.ClientID%>').val())) {
$('#lblStateName').text('Please Select Doctor Name').show().fadeOut(3000);
return false;
}
if (isNullOrEmpty($('#<%=ddlCities.ClientID%>').val())) {
$('#lbllist').text('Please enter Upper Limit').show().fadeOut(3000);
return false;
}
if (isNullOrEmpty($('#<%=txtCode.ClientID%>').val())) {
$('#lbllblCode').text('Please enter Code').show().fadeOut(3000);
return false;
}
alert(' Details Successfully added..');
$('#AddState').modal('hide')
return true;
};
$(function () {
$('#<%=ddlCities.ClientID %>').attr('disabled', 'disabled');
$('#<%=ddlCities.ClientID %>').append('<option selected="selected" value="0">Select City</option>');
$('#<%=ddlStateName.ClientID %>').change(function () {
var Cities = $('#<%=ddlStateName.ClientID%>').val()
$('#<%=ddlCities.ClientID %>').removeAttr("disabled");
$.ajax({
type: "POST",
url: "Citycheck.aspx/BindCities",
data: "{'Cities':'" + Cities + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var j = jQuery.parseJSON(msg.d);
var options;
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>'
}
$('#<%=ddlCities.ClientID %>').html(options)
},
error: function (data) {
alert('Something Went Wrong')
}
});
});
});
function Edit(RecordID) {
$.ajax({
url: 'citycheck.aspx/GetCityByStateCode?ts=' + $.now(),
contentType: 'application/json',
type: 'POST',
data: JSON.stringify({ id: RecordID }),
success: function (res) {
var obj = JSON.parse(res.d);
$('#<%=hdnRecordId.ClientID%>').val(RecordID);
$('#<%=ddlStateName.ClientID%>').val(obj.ID).change();
// $('#<%=ddlCities.ClientID%>').val(obj.CityID).change();
$('#<%=txtCode.ClientID%>').val(obj.code);
//modify here
console.log(('#ddlCities').val(obj.CitiID))
},
error: function (err) {
}
});
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web.Services;
using System.IO;
namespace cascade
{
public partial class Citycheck : System.Web.UI.Page
{
string cs = ConfigurationManager.ConnectionStrings["dbConn12"].ToString();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddlState.DataSource = GetStateNames();
ddlState.DataTextField = "StateName";
ddlState.DataValueField = "StateCode";
ddlState.DataBind();
ddlStateName.DataSource = GetStateNames();
ddlStateName.DataTextField = "StateName";
ddlStateName.DataValueField = "StateCode";
ddlStateName.DataBind();
ddlStateName.Items.Insert(0, new ListItem("All State Names", ""));
BindGrid();
}
}
protected DataSet GetStateNames()
{
SqlConnection con = new SqlConnection(cs);
SqlCommand cmd = new SqlCommand("sp_StateNames", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
try
{
con.Open();
da.Fill(ds);
con.Close();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
return ds;
}
protected void BindGrid()
{
using (SqlConnection con = new SqlConnection(cs))
{
using (SqlCommand cmd = new SqlCommand("Sp_CityData", con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@StateCode", ddlState.SelectedItem.Value);
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
if (dt.Rows.Count > 0)
{
grdData.DataSource = dt;
grdData.DataBind();
}
else
{
grdData.DataSource = dt;
grdData.DataBind();
}
}
}
}
protected void Search_Click(object sender, EventArgs e)
{
BindGrid();
}
protected void OnPagingChange(object sender, GridViewPageEventArgs e)
{
grdData.PageIndex = e.NewPageIndex;
this.BindGrid();
}
[WebMethod]
public static string BindCities(string Cities)
{
string cs = ConfigurationManager.ConnectionStrings["dbConn12"].ToString();
StringWriter builder = new StringWriter();
String strQuery = "select CityCode1 , CityName from CityDetails where StateCode = @stateCode ";
DataSet ds = new DataSet();
using (SqlConnection con = new SqlConnection(cs))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = strQuery;
cmd.Parameters.AddWithValue("@stateCode", Cities);
cmd.Connection = con;
con.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
con.Close();
}
}
DataTable dt = ds.Tables[0];
builder.WriteLine("[");
if (dt.Rows.Count > 0)
{
builder.WriteLine("{\"optionDisplay\":\"Select City\",");
builder.WriteLine("\"optionValue\":\"0\"},");
for (int i = 0; i <= dt.Rows.Count - 1; i++)
{
builder.WriteLine("{\"optionDisplay\":\"" + dt.Rows[i]["CityName"] + "\",");
builder.WriteLine("\"optionValue\":\"" + dt.Rows[i]["CityCode1"] + "\"},");
}
}
else
{
builder.WriteLine("{\"optionDisplay\":\"Select City\",");
builder.WriteLine("\"optionValue\":\"0\"},");
}
string returnjson = builder.ToString().Substring(0, builder.ToString().Length - 3);
returnjson = returnjson + "]";
return returnjson.Replace("\r", "").Replace("\n", "");
}
[WebMethod]
public static string GetCityByStateCode(int id)
{
Citydata citydata = null;
string cs = ConfigurationManager.ConnectionStrings["dbConn12"].ToString();
using (SqlConnection con = new SqlConnection(cs))
{
using (SqlCommand cmd = new SqlCommand("GetCityByStateCode", con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@RecordID", id);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable table = new DataTable();
da.Fill(table);
foreach (DataRow row in table.Rows)
{
citydata = new CityData()
{
RecordID = row["RecordID"].ToString(),
StateName = row["StateName"].ToString(),
CityName = row["CityName"].ToString(),
ID = row["StateCode"].ToString(),
CityID = row["CityCode1"].ToString(),
code = Convert.ToInt32(row["Code"].ToString()),
};
}
}
}
return Newtonsoft.Json.JsonConvert.SerializeObject(citydata);
}
protected void grdData_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Literal ltrlEdit = e.Row.FindControl("ltrlEdit") as Literal;
ltrlEdit.Text = string.Format("<button id='edit_{0}' onclick='Edit({0})' type='button'text='Edit' data-toggle='modal' class='btn btn-primary btn-sm pull-left' data-target='#AddState' title='Add State'>Edit</button>",
DataBinder.Eval(e.Row.DataItem, "RecordID"),
DataBinder.Eval(e.Row.DataItem, "RecordID").ToString());
}
}
}
}
This Works fine, Without update panel, Without dropdown autopostback.
hope it helps..