天天看點

ajax的運用,Jquery之Ajax運用 學習運用篇

protected void Page_Load(object sender, EventArgs e)

{

Conn.Open();

//執行動作

string Action = CommFun.Get_Safe_Str(Request["Action"]);

if (!IsPostBack)

{

if (Action == "")

{

rpt_Pro_Order_List_Bind();

}

else if (Action == "Single_Review") //點選稽核

{

lbtn_Audit_eShop_Price_Command();

}

else //點選批量稽核

{

btn_Batch_Review_eShop_Price();

}

}

}

Repeater綁定資料後,為LinkButton添加onclick屬性,用于執行頁面腳本代碼。

代碼如下:protected void rpt_Pro_Order_List_Bind()

{

……

this.rpt_Review.DataSource = Dt;

this.rpt_Review.DataBind();

for (int i = 0; i < this.rpt_Review.Items.Count; i++)

{

LinkButton lbtn_Audit_eShop_Price = (LinkButton)this.rpt_Review.Items[i].FindControl("lbtn_Audit_eShop_Price");

if (Dt.Rows[i]["Audit_eShop_Price"].ToString() == "1")

{

lbtn_Audit_eShop_Price.Enabled = false;

lbtn_Audit_eShop_Price.Text = "已稽核";

}

else

{

lbtn_Audit_eShop_Price.Enabled = true;

lbtn_Audit_eShop_Price.Attributes.Add("onclick",

"return lbtn_Audit_eShop_Price_Command(this, '" + Dt.Rows[i]["OrderId"].ToString() + "');");

}

}

}

[code]

2.用Ajax實作無重新整理批量稽核。

注意:這裡用到的控件必須是Html控件,否則會引起回發。但在Repeater内部伺服器控件也可以使用。

這裡隻需給input="btton"添加一個onclick屬性,直接執行Ajax腳本。

腳本内容如下:

[code]

//批量稽核

function Batch_Review()

{

if(!checkSelItem("OrderId","請選擇訂單!")) return false;

if(!confirm("确定要稽核嗎?")) return false;

var OrderIds = ""; //記錄所有訂單号

var elements = document.getElementsByName("OrderId");

for (var m=0; m < elements.length; m++){

if(m == elements.length - 1)

{

OrderIds = OrderIds + elements[m].value;

}

else

{

OrderIds = OrderIds + elements[m].value + ",";

}

}

var orderIdArr = OrderIds.split(',');

var newOrderIdStr = "";

var j = 0;//記錄選擇的訂單個數

var position = "";//記錄選擇的訂機關置

for(var i = 0;i

{

var chk_Id = "OrderId_"+orderIdArr[i];

if($_Id(chk_Id).checked)//記錄選中的訂單

{

if(i == orderIdArr.length - 1)

{

newOrderIdStr += orderIdArr[i];

position += i;

}

else

{

newOrderIdStr += orderIdArr[i]+",";

position += i + ",";

}

j++;

}

}

newOrderIdStr = RemoveRightComma(newOrderIdStr);//去除末尾逗号後的訂單号

position = RemoveRightComma(position);//去除末尾逗号後的位置

$.ajax({

type: "POST",

url: "AjaxTest.aspx",

data: { Order_Id_Arr: newOrderIdStr, Action: "Batch_Review" },

success: function(msg) {

if (msg != "") {

for(var k = 0 ;k

{

var newOrderIdArr = newOrderIdStr.split(',');

var positionArr = position.split(',');

$_Id("OrderId_"+newOrderIdArr[k]).disabled = "disabled";

if(parseInt(positionArr[k])<10)

{

$_Id("rpt_Review_ctl0"+parseInt(positionArr[k])+"_lbtn_Audit_eShop_Price").innerHTML = "已稽核";

$_Id("rpt_Review_ctl0"+parseInt(positionArr[k])+"_lbtn_Audit_eShop_Price").disabled = "disabled";

}

else

{

$_Id("rpt_Review_ctl"+parseInt(positionArr[k])+"_lbtn_Audit_eShop_Price").innerHTML = "已稽核";

$_Id("rpt_Review_ctl"+parseInt(positionArr[k])+"_lbtn_Audit_eShop_Price").disabled = "disabled";

}

}

}

}

})

return true;

}

//去除右邊逗号

function RemoveRightComma(str)

{

if(str == "") return;

var i;

for(i = str.length-1;i>=0;i--)

{

//charAt(i)取某一個位置的字元

if(str.charAt(i) != ",") break;

}

//截取字元串,substring(start,stop);傳回的結果不包含最後一位

str = str.substring(0,i+1);

return str;

}

至此執行個體講解結束。

最後回顧思路:

1.單條稽核:在頁面初始化時,給稽核按鈕加上onclick屬性,執行頁面腳本,單擊稽核後,背景的page_load事件根據Action選擇執行的事件。

2.批量稽核: 給批量稽核按鈕加上onclick屬性,執行Ajax腳本,背景的page_load事件同樣根據Action選擇執行的事件。批量稽核按鈕必須為Html控件。