最近太忙了,学了很多东西,一直没时间写出来,今天占用一点上班时间,小小贴段代码
前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="List_ApplyAdvert.aspx.cs" Inherits="MYAPP.ITMedia_User.Manage.Basenace.ApplyAdvert.List_ApplyAdvert" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>广告位列表</title>
<link href="/CSS/main.css" rel="stylesheet" type="text/css" />
<script language='JavaScript' type='text/javascript' src='/js/common.js'></script>
<script type="text/javascript" src="/js/coe.js"></script>
<script type="text/javascript" src="/js/date.js"></script>
<script type="text/javascript" src="/js/jquery-1.4.1.js"></script>
<script type="text/javascript">
$(function () {
$("#Count").blur(function () {
var pricetype = $("#PriceType").attr("value"); //在PriceType文本框失去焦点的事件里执行
var count = $("#Count").val();
if (pricetype != 0&&count!="")
{
onblur($("#screenid").val(),<%=_Layer_ID%>);
}
else if (pricetype== 0)
{
alert("请选择付费方式")
}
else if (count == "")
{
alert("请输入数量");
}
})
})
function onblur(screenid,layerid) //在调用后台GetCurrentScreenAdvertTotal方法时最好写全命名空间,本人就是在此纠结了好久
{
MYAPP.ITMedia_User.Manage.Basenace.ApplyAdvert.List_ApplyAdvert.GetCurrentScreenAdvertTotal(screenid,layerid, callback);
}
function callback(res)
{
alert(res.value);
}
</script>
</head>
<body>
<form id="theform" runat="server">
<table width="100%" border="0" align="center" cellpadding="2" cellspacing="1">
<tr class="table_title">
<td align="center" bgcolor="#D7F2FF" class="tab_bottom_line">商场名称</td>
<td align="center" bgcolor="#D7F2FF" class="tab_bottom_line">屏幕类型</td>
<td align="center" bgcolor="#D7F2FF" class="tab_bottom_line">屏幕地址</td>
<td align="center" bgcolor="#D7F2FF" class="tab_bottom_line">付费方式</td>
<td align="center" bgcolor="#D7F2FF" class="tab_bottom_line">购买数量</td>
<td align="center" bgcolor="#D7F2FF" class="tab_bottom_line">操作</td>
</tr>
<asp:Repeater ID="rp_list" runat="server">
<ItemTemplate>
<tr onMouseOver="this.className='tr_onmouseover'" onMouseOut="this.className='tr_onmouseout'" >
<td align="center" nowrap="nowrap" class="tab_bottom_line"><%# Eval("MI_Name")%></td>
<td align="center" nowrap="nowrap" class="tab_bottom_line"><%# Eval("SC_Name")%></td>
<td align="center" nowrap="nowrap" class="tab_bottom_line"><%# Eval("SI_Address")%></td>
<td align="center" nowrap="nowrap" class="tab_bottom_line">
<select id="PriceType">
<option value="0">请选择</option>
<option value="<%#Eval("Yearprice") %>">年费</option>
<option value="<%#Eval("Playprice") %>">播放次数</option>
</select>
</td>
<td align="center" nowrap="nowrap" class="tab_bottom_line">
<input type="text" id="Count" /><input type="text" id="screenid" style="display:none" value="<%#Eval("Screen_ID") %>"/>
</td>
<td align="center" nowrap="nowrap" class="tab_bottom_line">
<asp:Button ID="Btn" runat="server" Text="购买" />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
<tr>
<td colspan="18" align="right">
<asp:Button ID="btnAdd" runat="server" Text="申请广告位" OnClick="btnAdd_Click" />
</td>
</tr>
</table>
</form>
</body>
</html>
后台:
protected void Page_Load(object sender, EventArgs e) //在pageload里面注册下
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(List_ApplyAdvert));
}
[AjaxPro.AjaxMethod]
public int GetCurrentScreenAdvertTotal(int ScreenID,int layerid)//后台方法
{
Screen_Info si = new Screen_Info(db);
XmlNodeList LayerNodeLists = null;
if (si.Select("Screen_ID=" + ScreenID))
{
XmlDocument XmlConfig = si.SI_Config;
LayerNodeLists = XmlConfig.SelectNodes("/advert/item[@Laryer_id='" + layerid + "']");
}
return LayerNodeLists.Count;
}
小结一下,本人用过AjaxPro之后,个人感觉还是比较方便的,但是局限性也灰常大,怎么说呢,看你需求了
忘了点事,在web.config文件中的<system.web>加入以下设置
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpHandlers>