背景:有時候,需要為列表動態地新增一行,並且在後台**中能訪問到,即repeater在後台動態的新增一行(如果您只需要在前台用js新增一行,那本文不適合您的應用)。當然很多其它的控制項可以輕而易舉地做到,但顯示的樣式可能不是我們想要的,所以在這樣的情況下,我們需要用repeater做後台動態新增一行;
現狀:在網上主要有,用session來儲存狀態。額,拋開效能問題不說,這樣做也不能儲存在頁面上輸入的資料。所以這次主要實現的是實現儲存頁面上輸入的資料的狀態,並在後台動態地新增一行。
解決方法:在後台恢復頁面上的資料並存入datatable,然後為datatable新增一新行,並重新繫結;
前台**:
<後台**div
class
="datatable"
>
<
asp:hiddenfield
id="hfrptcolumns"
runat
="server"
value
="receiver,expense_amount,cut_payment_amount,acutal_amount,bank_no,bank_name"
/>
<
table
cellpadding
="1"
cellspacing
="0"
border
="1"
style
=" width:800px"
>
<
thead
>
<
tr>
<
th >
序號
th>
<
th>
收款人
th>
<
th>
報銷金額
th>
<
th>
扣款金額
th>
<
th>
實付金額
th>
<
th>
銀行賬號
th>
<
th>
開戶行
th>
tr>
thead
>
<
tbody
>
<
asp:repeater
id="rpttest"
runat
="server"
>
<
itemtemplate
>
<
tr>
<
td>
# container.itemindex+1
%>
td>
<
td><
asp:label
id="lblreceiver"
runat
="server"
text
='%>'>
asp:label
>
td>
<
td><
asp:textbox
id="txtexpenseamount"
runat
="server"
text
='%>'>
asp:textbox
>
td>
<
td><
asp:textbox
id="txtcutpaymentamount"
runat
="server"
text
='%>'>
asp:textbox
>
td>
<
td><
asp:label
id="lblacutalamount"
runat
="server"
text
='%>'>
asp:label
>
td>
<
td><
asp:label
id="lblbankno"
runat
="server"
text
='%>'>
asp:label
>
td>
<
td><
asp:label
id="lblbankname"
runat
="server"
text
='%>'>
asp:label
>
td>
tr>
itemtemplate
>
asp:repeater
>
tbody
>
table
>
<
div><
asp:button
id="btnaddnewrow"
runat
="server"
onclick
="btnaddnewrow_click"
text
="新增一行"
/>
div>
div>
protected示例**:rpttest.rarvoid page_load(object
sender, eventargs e)
}#region 繫結資料來源
//////繫結repeater的資料來源
/// private
void
binddata()
//////
生成測試資料
/// ///
private
void
loadtestdata(datatable dt)
//為第一行載入一些資料
datarow row0 = dt.rows[0
]; row0[
"receiver
"] = "
mike.jiang";
row0[
"expense_amount
"] = "
1000";
row0[
"cut_payment_amount
"] = "
300"
; row0[
"acutal_amount
"] = "
700"
; row0[
"bank_no
"] = "
325222222232522";
row0[
"bank_name
"] = "
建設銀行";
}//////
根據repeater相對應的列名,定義資料源datatable的schema
/// ///
列名 ///
public datatable definedatatableschema(string
columns)
return
dt; }
#endregion
#region 新增一行
protected
void btnaddnewrow_click(object
sender, eventargs e)
//新增一行
datarow row =dt.newrow();
dt.rows.add(row);
rpttest.datasource =dt;
rpttest.databind();
}#endregion
}
Repeater動態新增一行刪除一行
page language c autoeventwireup true codefile default2.aspx.cs inherits default2 cs public string fcode public string mystates protected void page loa...
Repeater動態新增行
id中文內容 英文內容 是否上傳聲音 新增時必填 頭像對話排序 最大時間 聲音時間 操作 container.itemindex 1 class form control class form control page currentpage pianzhangid pzid class btn b...
jquery刪除表單動態新增的某一行
jquery刪除表單某一行報錯 先刪除第一行,可正常刪除,再刪除第三行報錯 rows為表單陣列,index為刪除的陣列項 通過列印index,定位到問題原因是刪除第一項後,陣列長度變為2,此時刪除最後一項,index為2 rows 2 為undefined 解決方法 刪除一行後替換為空,保證索引正確...