//Ajax2
//函數名稱:getXmlHttpRequest()
/* ---------------------------------------------------------------------*/
/*目的:生成XMLHTTPRequest,瀏覽器對像
/*參數:N/A
/* xx. YYYY/MM/DD VER AUTHOR COMMENTS(說明修改的內容)
/* ---------------------------------------------------------------------*/
function GetXmlHttpRequest()
{
var A=null;
try
{
A=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
A=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(oc)
{
A=null;
}
}
if(!A && typeof XMLHttpRequest != "undefined")
{
A=new XMLHttpRequest();//Mozilla﹑Netscape﹑Safari 這些瀏覽器
}
return A
}
//客戶代號帶出一系列相關的欄位值出來,如何將多個值連接後在JS中作分割
實例一: grid中多個編輯欄位由其中一個欄位值聯動帶出來
function GetCustMag(obj,objIndex)
{
try
{
var objgrd = document.getElementById('grvAddAll');
if(obj.value.trim().length == 0) {
objgrd.rows[objIndex+1].cells[2].childNodes[0].value = "";
objgrd.rows[objIndex+1].cells[3].childNodes[0].value = "";
return true;
}
var http = getXmlHttpRequest();
var url = "PSSBPSCRM.ASPX?CustID=" + encodeURI(obj.value.trim());
//解決緩存
url += "&random=" + Math.random();
http.open("GET",url,false);
http.send();
var strResp = http.responseText;
var strGridName ="grvAddAll_ctl";
if(objIndex + 2 <10) strGridName="grvAddAll_ctl0";
var o_txtMTRBASE_ID =document.getElementById(strGridName+(objIndex + 2)+"_txtMTRBASE_ID");
var o_hidMTRBASE_NAME =document.getElementById(strGridName+(objIndex + 2)+"_hidMTRBASE_NAME");
var o_hidUNID_PRICE0 =document.getElementById(strGridName+(objIndex + 2)+"_hidUNIT_ID");
var o_hidTAX_TYPE =document.getElementById(strGridName+(objIndex + 2)+"_hidTAX_TYPE");//Add by Kangco
var o_lblTAX_NAME =document.getElementById(strGridName+(objIndex + 2)+"_lblTAX_NAME");
var o_hidTAX_NAME =document.getElementById(strGridName+(objIndex + 2)+"_hidTAX_NAME");
var o_txtREMARKGrv =document.getElementById(strGridName+(objIndex + 2)+"_txtREMARKGrv");
//add by Kangco 20070920
var o_drpORDER_ID = document.getElementById(strGridName+(objIndex + 2)+"_drpORDER_ID");
var o_drpSTORE_ID = document.getElementById(strGridName+(objIndex + 2)+"_drpSTORE_ID");
if(strResp != 'null')
{
if(strResp.indexOf('$')>-1)
{
objgrd.rows[objIndex+1].cells[3].childNodes[0].innerText = strResp.split('$')[1];
o_hidMTRBASE_NAME.value = strResp.split('$')[1];
objgrd.rows[objIndex+1].cells[4].childNodes[0].value = strResp.split('$')[2];//包裝單位
objgrd.rows[objIndex+1].cells[6].childNodes[0].value = strResp.split('$')[3];//單價
objgrd.rows[objIndex+1].cells[8].childNodes[0].value = strResp.split('$')[4];//換算庫存單位量
objgrd.rows[objIndex+1].cells[9].childNodes[0].innerText = strResp.split('$')[5];//庫存單位
o_hidUNID_PRICE0.value = strResp.split('$')[5];
objgrd.rows[objIndex+1].cells[10].childNodes[0].value = strResp.split('$')[6];//庫存單價
//Edit by Kangco
o_drpORDER_ID.value = strResp.split('$')[7];//等級
o_drpSTORE_ID.value = strResp.split('$')[8];//出庫倉別
o_hidTAX_TYPE.innerText = strResp.split('$')[9];
o_lblTAX_NAME.innerText = strResp.split('$')[10];//課稅別名稱
o_hidTAX_NAME.innerText = strResp.split('$')[10];//課稅別名稱
o_txtREMARKGrv.value = strResp.split('$')[11];//備注
if(objgrd.rows[objIndex+1].cells[6].childNodes[0].onblur != null)
{
objgrd.rows[objIndex+1].cells[6].childNodes[0].onblur();
}
if(objgrd.rows[objIndex+1].cells[10].childNodes[0].onblur != null)
{
objgrd.rows[objIndex+1].cells[10].childNodes[0].onblur();
}
}
else
{
objgrd.rows[objIndex+1].cells[3].childNodes[0].innerText ="";
o_hidMTRBASE_NAME.value = strResp.split('$')[1];
objgrd.rows[objIndex+1].cells[4].childNodes[0].value ="";
objgrd.rows[objIndex+1].cells[6].childNodes[0].value =""; //單價
objgrd.rows[objIndex+1].cells[8].childNodes[0].value =""; //換算庫存單位量
objgrd.rows[objIndex+1].cells[9].childNodes[0].innerText =""; //庫存單位
o_hidUNID_PRICE0.value = "";
objgrd.rows[objIndex+1].cells[10].childNodes[0].value =""; //庫存單價
objgrd.rows[objIndex+1].cells[11].childNodes[0].value =""; //等級
objgrd.rows[objIndex+1].cells[12].childNodes[0].value =""; //出庫倉別
o_hidTAX_TYPE.innerText=""; //課稅別代碼
o_hidTAX_NAME.value = "";//課稅別
o_txtMTRBASE_ID.value = "";//清空自身
ShowError('00048','品項代號');
}
}
}
catch(e)
{
//alert("找不到");
//ShowError('B0047','品項代號');
}
}
Page_Load事件中:
if (Request.QueryString["CustID"] != null)
{
GetParaData(Request.QueryString["CustID"].ToString());
}
GetParaData取得資料函數:
#region [Ajax]根據客戶ID獲品項信息集
/// <summary>
/// 根據客戶ID獲品項信息集
/// </summary>
/// <param name="s_aCustID"></param>
private void GetParaData(string s_aCustID)
{
BMTRBASEM o_BMTRBASEM = new BMTRBASEM();
o_BMTRBASEM.MTRBASE_ID = s_aCustID.Trim();//品項代碼
o_BMTRBASEM.MTRBASE_NAME = "";
o_BMTRBASEM.MTRCATOBID = "";
o_BMTRBASEM.MTRCATOCID = "";
DataTable dt_Name = go_BLL_PSSBPREJSCR.Query(o_BMTRBASEM, "$$$", true).Tables[0];
if (dt_Name != null && dt_Name.Rows.Count > 0)
{
Response.Clear();
Response.Write(dt_Name.Rows[0]["SEQ_NO"].ToString()//[序號]
+ "$" + dt_Name.Rows[0]["MtrBase_NAME"].ToString()//品項名稱
+ "$" + dt_Name.Rows[0]["PACK_UNIT_ID"].ToString()//包裝單位
+ "$" + dt_Name.Rows[0]["Price_No"].ToString()//單價
+ "$" + dt_Name.Rows[0]["UNITAGE"].ToString()//換算庫存單位量
+ "$" + dt_Name.Rows[0]["UNIT_ID_NAME"].ToString()//庫存單位
+ "$" + dt_Name.Rows[0]["UNID_PRICE"].ToString()//庫存單價
+ "$" + dt_Name.Rows[0]["Order_ID"].ToString()//等級
+ "$" + dt_Name.Rows[0]["Store_ID"].ToString()//入庫倉別
+ "$" + dt_Name.Rows[0]["TAX_TYPE"].ToString()//[課稅別代碼]
+ "$" + dt_Name.Rows[0]["TAX_NAME"].ToString()//[課稅別]
+ "$" + dt_Name.Rows[0]["REMARK"].ToString()//[備注]
);
Response.Flush();
Response.Close();
}
else
{
Response.Clear();
Response.Write("");
Response.Flush();
Response.Close();
}
}
#endregion
//bind Ajax聯動JS事件
protected void grvAddAll_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex > -1)
{
ImageButton ibntDelete = (ImageButton)e.Row.Cells[0].FindControl("ibtnDelete");
ibntDelete.CommandArgument = e.Row.RowIndex.ToString();
TextBox txtMTRBASE_ID = (TextBox)e.Row.Cells[2].FindControl("txtMTRBASE_ID");
txtMTRBASE_ID.Attributes.Add("onchange", "GetCustMag(this," + e.Row.RowIndex + ");");
}
}
實例二:廠商聯動相應的欄位
function getCOM(){
var srcObj = document.all.itnCOM_txtID;
if(srcObj.value.trim()=='')
{
document.getElementById('drpCURR_ID').value='';//幣別
document.getElementById('txtPay_Due_Date').value='';//結帳日
document.getElementById('txtPAY_DATE').value='';//付款日
return false;
}
var s_ComId=srcObj.value.trim();
var s_Date = document.all.txtDATE.value.trim();
var ToURL;
var oXmlDoc = new ActiveXObject("MSXML2.DOMDocument");
var xmlHttp=getXmlHttpRequest();
var ToURL="PSSBPRejSCRM.aspx?s_ComId="+escape(s_ComId)+"&s_Date="+escape(s_Date);
xmlHttp.open("POST",ToURL,false);
xmlHttp.send("");
var result = xmlHttp.responseText;
if(result!='false')
{
document.getElementById('drpCURR_ID').value=result.split("&&&")[1];
document.getElementById('drpCURR_ID').onchange();//觸發它的onchange事件 document.getElementById('txtPay_Due_Date').value=result.split("&&&")[5]; document.getElementById('txtPAY_DATE').value=result.split("&&&")[6];
return true;
}
else
{
ShowError('00048','廠商代碼'); //廠商代碼不存在
srcObj.value='';
document.getElementById('drpCURR_ID').value='';
document.getElementById('txtPay_Due_Date').value='';
document.getElementById('txtPAY_DATE').value='';
return false;
}
}
後台代碼:
//ajax廠商
if (this.GetComAjax())
{
return;
}
/// <summary>
/// 廠商Ajax連動相磁欄位的數據源處理
/// </summary>
/// <param name="s_aMtrId"></param>
private void getCom(string s_aDate, string s_aComId)
{
DataSet ds_Com = go_BLL_PSSBPREJSCR.GetSupp(ConvertDateFromPage(s_aDate.Trim()), s_aComId);
string s_Result = string.Empty;
if (ds_Com.Tables[0].Rows.Count > 0)
{
s_Result = ds_Com.Tables[0].Rows[0]["COM_NAME"].ToString().Trim() + "&&&";//幣別
s_Result += ds_Com.Tables[0].Rows[0]["CURR_ID"].ToString().Trim() + "&&&";
s_Result += ds_Com.Tables[0].Rows[0]["TICKETNO"].ToString().Trim() + "&&&";//發票聯式
s_Result += ds_Com.Tables[0].Rows[0]["TAX_TYPE"].ToString().Trim() + "&&&";//課稅別
s_Result += ds_Com.Tables[0].Rows[0]["PAY_TYPE"].ToString().Trim() + "&&&";//付款方式
s_Result += ConvertDateFromData(Convert.ToDateTime(ds_Com.Tables[0].Rows[0]["Pay_Due_Date"].ToString().Trim())) + "&&&";//結帳日
s_Result += ConvertDateFromData(Convert.ToDateTime(ds_Com.Tables[0].Rows[0]["PayDay_Date"].ToString().Trim()));//付款日
}
if (s_Result.Equals(""))
{
s_Result = "false";
}
Response.Clear();
Response.Write(s_Result);
Response.Flush();
Response.Close();
}
//AJAX 避免txtCOM_txtid事件報JS錯誤,如何調用
TextBox txtCOM_TextBox = ((TextBox)this.itnCOM.FindControl("txtID"));
txtCOM_TextBox.Attributes.Add("onchange", "getCOM();");
實例三:由幣別聯動帶出匯率
//Ajax
function GetCurrRate(obj)
{
var s_CURR_ID=obj.value;
if(s_CURR_ID=="")
{
return true;
}
else
{
var reqURL = 'PSSBPSCRM.aspx?s_CURR_ID=' + s_CURR_ID;
var oHttpReq = GetXmlHttpRequest();//構造XMLHTTP
oHttpReq.open("POST",reqURL,false);//構造返回所需的參數(返回的頁面以及所要返回的參數)
oHttpReq.send("");
var result = oHttpReq.responseText;
//匯率
document.getElementById("txtRATE").value=result;
}
}
//ajax匯率 Page_Load中加載此部分
if (Request["s_CURR_ID"] != null)
{
GetCurrAjax(Request["s_CURR_ID"].ToString());
}
#region [Ajax]取匯率by幣別
/// <summary>
/// Ajax獲取匯率
/// </summary>
/// <param name="s_aUserCode"></param>
private void GetCurrAjax(string s_aCURR_ID)
{
string s_CurrRate = string.Empty;
try
{
//getDataTable("表名","查詢條件欄位","查詢條件的值")
string s_CURR_ID = s_aCURR_ID;
DataTable dt_Content = go_BLL_PSSBPREJSCR.getDataTable("BCURRM", "CURR_ID", s_CURR_ID);
if (dt_Content != null && dt_Content.Rows.Count > 0)
{
s_CurrRate = dt_Content.Rows[0]["CURRRATE"].ToString();
}
else
{
s_CurrRate = "";
}
Response.Clear();
Response.Write(s_CurrRate);
Response.Flush();
Response.Close();
}
catch (Exception ex)
{
ex.Message.ToString();
}
finally { }
}
#endregion
浙公网安备 33010602011771号