sir i have used webservices for bind dropdown for the continent,country,and city.
and i have to submit a form for insert the data into database.
now it giving the error.
Invalid postback or callback argument. Event validation is enabled using <pages enableeventvalidation="true"> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
in my webservices page
------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using AjaxControlToolkit;
using BusinessLogicsTourismLeads.AdminBusiness;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
using System.Collections.Specialized;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService()]
public class CascadingDropdown : System.Web.Services.WebService {
private static string strconnection = "Data Source=.; Initial catalog=TOURISMLEADS; USER ID=sa; Password=123;";
SqlConnection concountry = new SqlConnection(strconnection);
public CascadingDropdown () {
}
AdminBusinessLogic abl = new AdminBusinessLogic();
[WebMethod]
public CascadingDropDownNameValue[] BindContinentDetails(string knownCategoryValues, string category)
{
concountry.Open();
SqlCommand cmdcontinent = new SqlCommand("select ContinentalID, ContinentalName from TblContinental", concountry);
cmdcontinent.ExecuteNonQuery();
SqlDataAdapter dacontinent = new SqlDataAdapter(cmdcontinent);
DataSet dscontinent = new DataSet();
dacontinent.Fill(dscontinent);
concountry.Close();
List<cascadingdropdownnamevalue> contidetails = new List<cascadingdropdownnamevalue>();
foreach (DataRow dtrow in dscontinent.Tables[0].Rows)
{
string ContinentalID = dtrow["ContinentalID"].ToString();
string ContinentalName = dtrow["ContinentalName"].ToString();
contidetails.Add(new CascadingDropDownNameValue(ContinentalName, ContinentalID));
}
return contidetails.ToArray();
}
[WebMethod]
public CascadingDropDownNameValue[] BindCountryDetails(string knownCategoryValues, string category)
{
int ContinentalID;
StringDictionary continentdetails = AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
ContinentalID = Convert.ToInt32(continentdetails["Continent"]);
concountry.Open();
SqlCommand cmdCountry = new SqlCommand("SELECT COUNTRYID,COUNTRYNAME FROM TBLCOUNTRY where ContinentalID=@ContinentalID", concountry);
cmdCountry.Parameters.AddWithValue("@ContinentalID",ContinentalID);
cmdCountry.ExecuteNonQuery();
SqlDataAdapter dacountry = new SqlDataAdapter(cmdCountry);
DataSet dscountry = new DataSet();
dacountry.Fill(dscountry);
concountry.Close();
List<cascadingdropdownnamevalue> countrydetails = new List<cascadingdropdownnamevalue>();
foreach (DataRow dtrow in dscountry.Tables[0].Rows)
{
string CountryID = dtrow["CountryID"].ToString();
string CountryName = dtrow["CountryName"].ToString();
countrydetails.Add(new CascadingDropDownNameValue(CountryName, CountryID));
}
return countrydetails.ToArray();
}
[WebMethod]
public CascadingDropDownNameValue[] BindCityDetails(string knownCategoryValues, string category)
{
int CountryID;
StringDictionary countrydetails = AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
CountryID = Convert.ToInt32(countrydetails["Country"]);
concountry.Open();
SqlCommand cmdCity = new SqlCommand("select PlaceID,placeName from TblTouristPlace where COUNTRYID=@CountryID", concountry);
cmdCity.Parameters.AddWithValue("@CountryID", CountryID);
cmdCity.ExecuteNonQuery();
SqlDataAdapter dacity = new SqlDataAdapter(cmdCity);
DataSet dscity = new DataSet();
dacity.Fill(dscity);
concountry.Close();
List<cascadingdropdownnamevalue> citydetails = new List<cascadingdropdownnamevalue>();
foreach (DataRow dtrow in dscity.Tables[0].Rows)
{
string PlaceID = dtrow["PlaceID"].ToString();
string placeName = dtrow["placeName"].ToString();
citydetails.Add(new CascadingDropDownNameValue(placeName, PlaceID));
}
return citydetails.ToArray();
}
}
and in my Hotels.aspx page
------------------------------
<%@ Page Title="" Language="C#" MasterPageFile="~/Administrator/AdminMasterPage.master" AutoEventWireup="true" CodeFile="Hotels.aspx.cs"
Inherits="Administrator_Hotels" %>
<%@ Register Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit" tagPrefix="ajax" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<link href="Css/AdminControlStyleSheet.css" rel="stylesheet" type="text/css" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div>
<div class="line">
<div class="label">
Continent
</div>
<div class="text">
<asp:DropDownList ID="ddlContinent" runat="server"></asp:DropDownList>
<ajax:CascadingDropDown ID="ccdContinent" runat="server" Category="continent" TargetControlID="ddlContinent"
PromptText="select Continent" LoadingText="Loading Continents..." ServiceMethod="BindContinentDetails"
ServicePath="CascadingDropdown.asmx"></ajax:CascadingDropDown>
</div>
</div>
<div class="line">
<div class="label">
Country
</div>
<div class="text">
<asp:DropDownList ID="ddlCountry" runat="server">
</asp:DropDownList>
<ajax:CascadingDropDown ID="ccdCountry" runat="server" Category="Country" ParentControlID="ddlContinent"
TargetControlID="ddlCountry" PromptText="Select Country" LoadingText="Loading Country..."
ServiceMethod="BindCountryDetails" ServicePath="CascadingDropdown.asmx" ></ajax:CascadingDropDown>
</div>
</div>
<div class="line">
<div class="label">
City
</div>
<div class="text">
<asp:DropDownList ID="ddlCity" runat="server"></asp:DropDownList>
<ajax:CascadingDropDown ID="ccdCity" runat="server" Category="City" ParentControlID="ddlCountry"
TargetControlID="ddlCity" PromptText="Select City" LoadingText="Loading City..." ServiceMethod="BindCityDetails"
ServicePath="CascadingDropdown.asmx"></ajax:CascadingDropDown>
</div>
</div>
<div class="line">
<div class="label">
Hotel Name</div>
<div class="text">
<asp:TextBox ID="txtHotelName" runat="server" Text=""></asp:TextBox>
</div>
</div>
<div class="line">
<div class="label">
Hotel Image</div>
<div class="text">
<asp:FileUpload ID="fuplHotelImage" runat="server" />
<asp:TextBox ID="txtImageName" runat="server" Text="" Visible="false"></asp:TextBox>
</div>
</div>
<div class="line">
<div class="label">
Hotel Star Catagory</div>
<div class="text">
<asp:DropDownList ID="ddlHotelStar" runat="server">
<asp:ListItem Value="2star.png">2</asp:ListItem>
<asp:ListItem Value="3star.png">3</asp:ListItem>
<asp:ListItem Value="4star.png">4</asp:ListItem>
<asp:ListItem Value="5star.png">5</asp:ListItem>
<asp:ListItem Value="1budget.png">Budget Hotel</asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class="line">
<div class="label">
Address</div>
<div class="text">
<asp:TextBox ID="txtAddress" runat="server" Text="" TextMode="MultiLine"></asp:TextBox>
</div>
</div>
<div class="line">
<div class="label">
Description</div>
<div class="text">
<asp:TextBox ID="txtDescription" runat="server" Text="" TextMode="MultiLine"></asp:TextBox>
</div>
</div>
<div class="line">
<div class="label">
Price</div>
<div class="text">
<asp:TextBox ID="txtPrice" runat="server" Text=""></asp:TextBox>
</div>
</div>
<div class="line">
<div class="label">
Facility
</div>
<div class="text">
</div>
</div>
<div class="line" style="text-align:center;">
<asp:Button ID="btnSubmit" runat="server" Text="Submit"
onclick="btnSubmit_Click" />
</div>
</div>
</asp:Content>
---------------------------------
and in my Hotels.axpx.cs page
----------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using BusinessLogicsTourismLeads.AdminBusiness;
public partial class Administrator_Hotels : System.Web.UI.Page
{
AdminBusinessLogic abl = new AdminBusinessLogic();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Convert.ToString(Session["username"]) == null)
{
Response.Redirect("/TourismLeads/Login.aspx");
}
string username = Session["UserName"].ToString();
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (fuplHotelImage.HasFile)
{
string saveLocation = Server.MapPath(@"./HotelstarCatagory");
string fileExtension = Path.GetExtension(saveLocation);
string filename = Guid.NewGuid().ToString();
string savePath = saveLocation + filename + fileExtension;
txtImageName.Text = filename + fileExtension;
fuplHotelImage.SaveAs(savePath);
}
string strQuery = "insert into TBLHOTELS (CONTINENTALID,COUNTRYID,PLACEID,HOTELNAME,HOTELIMAGE,HOTELCLASS,Description,ADDRESS,PRICE,Created_by,Created_on) values ( " +
" @CONTINENTALID, @COUNTRYID,@PLACEID,@HOTELNAME,@HOTELIMAGE,@HOTELCLASS,@Description,@ADDRESS,@PRICE,@Created_by,@Created_on) ";
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(strQuery);
cmd.Parameters.Add("@CONTINENTALID", ddlContinent.SelectedValue);
cmd.Parameters.Add("@COUNTRYID", ddlCountry.SelectedValue);
cmd.Parameters.Add("@PLACEID", ddlCountry.SelectedValue);
cmd.Parameters.Add("@HOTELNAME", txtHotelName.Text);
cmd.Parameters.Add("@HOTELIMAGE", txtImageName.Text);
cmd.Parameters.Add("@HOTELCLASS", ddlHotelStar.SelectedValue);
cmd.Parameters.Add("@Description", txtDescription.Text);
cmd.Parameters.Add("@ADDRESS", txtAddress.Text);
cmd.Parameters.Add("@PRICE", txtPrice.Text);
cmd.Parameters.Add("@Created_by", Convert.ToString(Session["username"]));
cmd.Parameters.Add("@Created_on", DateTime.Now);
abl.UpdateRecord(strQuery);
Server.Transfer("~/Administrator/Hotels.aspx");
}
}
---------------------------------------
sir i am worried for this problem since 2 days.
please help
Thanking you in advance