Каскадные выпадающие проблема в GridView в редактирование модальное всплывающее окно
Gridview имеет кнопку редактирования, при нажатии на кнопку редактирования в gridview появляется всплывающее окно с режимом редактирования, который имеет каскадный выпадающий список..но 2-й выпадающий список не показывает его выбранное значение из базы данных..
пожалуйста, помогите .??
вот мой полный код..
<!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); }, 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()); } } } }