minaalamshahi
یک شنبه 10 مهر 1390, 11:41 صبح
با سلام
من یه drop down دارم که می خوام موقع لود صفحه پر بشه که به روش زیر انجامش دادم اما به onload که می رسه گیر می کنه
برای اینکه قبل از اینکه codebehind رو بخونه میره onload جاوا اسکریپت رو می خونه
چطوری می تونم اول page load در codebehind رو اجرا کنم بعد بیام و تابع پر کردن dropdown رو در سمت جاوا اسکریپت اجرا کنم
البته به همین روش می خوام کار کنم با jQuery و ajax callback خود Asp نمی خوام اونا رو بلدم
ممنونم پیشاپیش
function CreateXMLHTTP() {
if (typeof XMLHttpRequest != "undefined") {
xmlHttp = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
var aVersion = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"];
for (var i = 0; i < aVersion.length; i++) {
try {
xmlHttp = new ActiveXObject(aVersion[i]);
break;
}
catch (oError) {
//do nothing
}
}
}
}
function Proccess() {
CreateXMLHTTP();
if (xmlHttp != null) {
xmlHttp.open('Post', 'frmcomplaint.aspx', true);
xmlHttp.onreadystatechange = Update;
xmlHttp.setRequestHeader(Header, "true");
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send(body);
}
else {
alert("problem");
}
}
function Update() {
if (xmlHttp.readyState == 4) {
if (Header == "drporg") {
var xmlDoc = xmlHttp.responseXML;
var nodesArray = xmlDoc.childNodes;
var result = nodesArray[0];
if (result.firstChild.text == "") {
var arrayorg = result.firstChild.text.split("~");
for (i = 0; i < arrayorg.length; i++) {
every = arrayorg[i].split(';');
document.getElementById('Drporg').add(new Option(every[0], every[1]));
}
document.getElementById('Drporg').selectedIndex = -1;
}
else if (Header == "send") {
var btnsend = document.getElementById("btnsend");
btnsend.value = "ارسال";
btnsend.disabled = "";
var xmlDoc = xmlHttp.responseXML;
var nodesArray = xmlDoc.childNodes;
var result = nodesArray[0];
alert(result.firstChild.text);
window.location.href = "Users/Customer/SecondStep/Accounting.aspx";
}
else if (Header == "drptype_use") {
document.getElementById("linkControlPanel").style["visibility"] = "hidden";
document.getElementById("linkExit").style["visibility"] = "hidden";
}
}
else {
else if (Header == "send") {
var btnsend = document.getElementById("btnsend");
btnsend.value = "صبر کنید";
btnsend.disabled = true;
}
}
}
function bindrporg() {
Header = "drporg";
Proccess();
}
در code behind
if (Request.Headers["drporg"] != null)
{
SqlConnection con = newSqlConnection();
con.ConnectionString = "Data Source=PC-13\\PC_13_2008;Initial Catalog=db;Integrated Security=True";
SqlDataAdapter sda1 = newSqlDataAdapter("select * from tTaxiOrganization", con);
DataSet ds1 = newDataSet();
sda1.Fill(ds1, "tbl1");
Response.ContentType = "text/xml";
Response.Charset = "utf-8";
Response.Write("<result>");
Response.Write("<msg>");
for (int i = 0; i < ds1.Tables["tbl1"].Rows.Count; i++)
Response.Write(ds1.Tables["tbl1"].Rows[i][0] + ";" + ds1.Tables["tbl1"].Rows[i][2] + "~");
Response.Write("</msg>");
Response.Write("</result>");
Response.End();
}
من یه drop down دارم که می خوام موقع لود صفحه پر بشه که به روش زیر انجامش دادم اما به onload که می رسه گیر می کنه
برای اینکه قبل از اینکه codebehind رو بخونه میره onload جاوا اسکریپت رو می خونه
چطوری می تونم اول page load در codebehind رو اجرا کنم بعد بیام و تابع پر کردن dropdown رو در سمت جاوا اسکریپت اجرا کنم
البته به همین روش می خوام کار کنم با jQuery و ajax callback خود Asp نمی خوام اونا رو بلدم
ممنونم پیشاپیش
function CreateXMLHTTP() {
if (typeof XMLHttpRequest != "undefined") {
xmlHttp = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
var aVersion = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"];
for (var i = 0; i < aVersion.length; i++) {
try {
xmlHttp = new ActiveXObject(aVersion[i]);
break;
}
catch (oError) {
//do nothing
}
}
}
}
function Proccess() {
CreateXMLHTTP();
if (xmlHttp != null) {
xmlHttp.open('Post', 'frmcomplaint.aspx', true);
xmlHttp.onreadystatechange = Update;
xmlHttp.setRequestHeader(Header, "true");
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send(body);
}
else {
alert("problem");
}
}
function Update() {
if (xmlHttp.readyState == 4) {
if (Header == "drporg") {
var xmlDoc = xmlHttp.responseXML;
var nodesArray = xmlDoc.childNodes;
var result = nodesArray[0];
if (result.firstChild.text == "") {
var arrayorg = result.firstChild.text.split("~");
for (i = 0; i < arrayorg.length; i++) {
every = arrayorg[i].split(';');
document.getElementById('Drporg').add(new Option(every[0], every[1]));
}
document.getElementById('Drporg').selectedIndex = -1;
}
else if (Header == "send") {
var btnsend = document.getElementById("btnsend");
btnsend.value = "ارسال";
btnsend.disabled = "";
var xmlDoc = xmlHttp.responseXML;
var nodesArray = xmlDoc.childNodes;
var result = nodesArray[0];
alert(result.firstChild.text);
window.location.href = "Users/Customer/SecondStep/Accounting.aspx";
}
else if (Header == "drptype_use") {
document.getElementById("linkControlPanel").style["visibility"] = "hidden";
document.getElementById("linkExit").style["visibility"] = "hidden";
}
}
else {
else if (Header == "send") {
var btnsend = document.getElementById("btnsend");
btnsend.value = "صبر کنید";
btnsend.disabled = true;
}
}
}
function bindrporg() {
Header = "drporg";
Proccess();
}
در code behind
if (Request.Headers["drporg"] != null)
{
SqlConnection con = newSqlConnection();
con.ConnectionString = "Data Source=PC-13\\PC_13_2008;Initial Catalog=db;Integrated Security=True";
SqlDataAdapter sda1 = newSqlDataAdapter("select * from tTaxiOrganization", con);
DataSet ds1 = newDataSet();
sda1.Fill(ds1, "tbl1");
Response.ContentType = "text/xml";
Response.Charset = "utf-8";
Response.Write("<result>");
Response.Write("<msg>");
for (int i = 0; i < ds1.Tables["tbl1"].Rows.Count; i++)
Response.Write(ds1.Tables["tbl1"].Rows[i][0] + ";" + ds1.Tables["tbl1"].Rows[i][2] + "~");
Response.Write("</msg>");
Response.Write("</result>");
Response.End();
}