js部分:
function getIt(obj){
var r,c,o;
o = obj;
while(o.tagName != "TD"){
o = o.parentNode;
if(o.tagName != "TD"){
return;
}
}
c = o.cellIndex;
while(o.tagName != "TR")
o = o.parentNode;
if(o.tagName != "TR"){
return;
}
r = o.rowIndex;
var btn = document.getElementById("ctl00_ContentPlaceHolder1_btn_Pay");
var total = document.getElementById("ctl00_ContentPlaceHolder1_GridView_Order").rows[r].cells[1].firstChild.innerText;
var tmoney = document.getElementById("ctl00_ContentPlaceHolder1_GridView_Order").rows[r].cells[3].firstChild.value;
if(tmoney == ""){
tmoney = 0;
}
if(isNaN(tmoney)){
alert("请输入数字");
btn.disabled = true;
return;
}
if(tmoney-total>0){
alert("输入金额太大");
btn.disabled = true;
return;
}
document.getElementById("ctl00_ContentPlaceHolder1_GridView_Order").rows[r].cells[2].firstChild.innerText = total-tmoney;
SetMoney();
SetTmoney();
}
//计算总现金
function SetMoney(){
var money = document.getElementById("<%=lbl_Money.ClientID %>");
var flag =0;
var rows = document.getElementById("ctl00_ContentPlaceHolder1_GridView_Order").rows.length;
for(var i=1;i<rows;i++){
flag = flag-(-document.getElementById("ctl00_ContentPlaceHolder1_GridView_Order").rows[i].cells[2].firstChild.innerText);
}
money.innerText = flag;
document.getElementById("<%=hf_Money.ClientID %>").value = flag;
ShiXiWang.WebServices.WebService.CheckMoney(flag,CallBackSetMoney);
}
function CallBackSetMoney(result){
var btn = document.getElementById("ctl00_ContentPlaceHolder1_btn_Pay");
var error = document.getElementById("<%=lbl_Error1.ClientID %>");
if(result == "1"){
error.innerText = "你的账户现金余额不足";
btn.disabled = true;
}
else{
error.innerText = "";
btn.disabled = false;
}
}
//计算总现金券
function SetTmoney(){
var tmoney = document.getElementById("<%=lbl_Tmoney.ClientID %>");
var flag =0;
var rows = document.getElementById("ctl00_ContentPlaceHolder1_GridView_Order").rows.length;
for(var i=1;i<rows;i++){
flag = flag-(-document.getElementById("ctl00_ContentPlaceHolder1_GridView_Order").rows[i].cells[3].firstChild.value);
}
tmoney.innerText = flag;
document.getElementById("<%=hf_Tmoney.ClientID %>").value = flag;
ShiXiWang.WebServices.WebService.CheckTmoney(flag,CallBackSetTmoney);
}
function CallBackSetTmoney(result){
var btn = document.getElementById("ctl00_ContentPlaceHolder1_btn_Pay");
var error = document.getElementById("<%=lbl_Error2.ClientID %>");
if(result == "1"){
error.innerText = "你的账户现金券余额不足";
btn.disabled = true;
}
else if(btn.disabled==false){
error.innerText = "";
btn.disabled = false;
}
}
html部分:
<asp:GridView ID="GridView_Order" runat="server"
AllowSorting="True" AutoGenerateColumns="False" Width="96%"
EmptyDataText="没有找到项目" DataKeyNames="pid"
onrowdatabound="GridView_Order_RowDataBound" >
<EmptyDataRowStyle BorderStyle="None" CssClass="datagrid_empty_style" />
<Columns>
<asp:BoundField DataField="pname" HeaderText="培训项目">
<HeaderStyle HorizontalAlign="center" BackColor="#ECF7FF" />
<ItemStyle HorizontalAlign="center" />
</asp:BoundField>
<asp:TemplateField HeaderText="费用(元)">
<ItemTemplate>
<asp:Label ID="lbl_Total" runat="server" Text='<%#Eval("price") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="center" BackColor="#ECF7FF" Height="40px" />
<ItemStyle HorizontalAlign="center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="现金支付">
<ItemTemplate>
<asp:Label ID="lbl_Money" runat="server" Text="0"></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="center" BackColor="#ECF7FF" />
<ItemStyle HorizontalAlign="center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="现金券支付">
<ItemTemplate>
<input type="text" runat="server" style="width:150px;" id="txt_Tmoney" class="textbox_style" value="0" οnkeyup="getIt(this)" />
</ItemTemplate>
<HeaderStyle HorizontalAlign="center" BackColor="#ECF7FF" />
<ItemStyle HorizontalAlign="center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:ImageButton ID="lbtn_Del" οnclick="lbtn_Del_Click" runat="server" ImageUrl="~/images/SyTrain/shanqu.gif" OnClientClick="return confirm('确定要删除吗?');" />
</ItemTemplate>
<HeaderStyle HorizontalAlign="center" BackColor="#ECF7FF" />
<ItemStyle HorizontalAlign="center" />
</asp:TemplateField>
</Columns>
<SelectedRowStyle CssClass="datagrid_selected_style" />
<HeaderStyle BackColor="#ECF7FF" />
</asp:GridView>
问题的难点有二:1。确定GridView的行与列;2。在html解析后服务器控件的形式;