在ASP.NET中用DataGrid的ItemTemplate實現多筆錄入的客戶端寫法
在ASP.NET中用DataGrid的ItemTemplate實現多筆錄入的客戶端寫法 在ASP.NET中經常會遇到多筆錄入的情況,而且是在ItemTemplate下(許多User都不願編輯一筆存一筆),經過多次的嘗試,近日總算找到了思歸的一小段代碼,解決了我多日來的難題我有一個頁面但由於筆數不確定,所以只能採用DataGrid來實現,而且還是在ItemTemplate中,當點選客戶下拉選單時要將客戶代號SHOW在旁邊的textbox中,昨天找到一客戶端的參考,今日嘗試改寫後通過啦^__^參考代碼如下:<asp:TemplateColumn HeaderText='数量'>
<ItemTemplate>
<asp:TextBox id='ShuLiang' runat='server' Text='<%# DataBinder.Eval(Container.DataItem,'DG_ShuLiang')%>'
onkeyup=DoCal()'
/>
<asp:RegularExpressionValidator id='revS' runat='server' ControlToValidate='ShuLiang' ErrorMessage='must be integer' ValidationExpression='^\d+$' />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText='单价'>
<ItemTemplate>
<asp:TextBox id='DanJian' runat='server' Text='<%# DataBinder.Eval(Container.DataItem,'DG_DanJian')%>'
onkeyup=DoCal()'
/>
<asp:RegularExpressionValidator id='revS2' runat='server' ControlToValidate='DanJian' ErrorMessage='must be numeric' ValidationExpression='^\d+(\.\d*)?$' />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText='金额'>
<ItemTemplate>
<asp:TextBox id='JinE' runat='server' Text='<%# DataBinder.Eval(Container.DataItem,'DG_JinE')%>' />
</ItemTemplate>
</asp:TemplateColumn>
<script language='javascript'>
function DoCal()
{
var e = event.srcElement;
var row = e.parentNode.parentNode;
var txts = row.all.tags('INPUT');
if (!txts.length || txts.length < 3)
return;
var q = txts[txts.length-3].value;
var p = txts[txts.length-2].value;
if (isNaN(q) || isNaN(p))
return;
q = parseInt(q);
p = parseFloat(p);
txts[txts.length-1].value = (q * p).toFixed(2);
}
</script>
資料來源:http://bbs.hidotnet.com/13796/ShowPost.aspx哈~~在此感謝思歸和整理代碼的朋友^__^