如何在頁面加載後使動態元素保留並且該動態元素內的數據傳輸到下一頁?如何將數據傳輸到其他頁面並使動態元素保留?
我需要添加一個包含複選框和文本框的新行。我正在使用Clone()
方法創建一個新行。但是,然後,當我點擊提交時,新行添加了新的數據。
有人告訴我clone()
方法會做一個臨時元素,它不會在頁面加載後停留。 那麼,我應該使用create()新元素嗎?我也搜索另一種方法,其中某些方法使用asp:placeholder。
而我的下一個問題,我想如何傳輸該動態元素內的數據?通過使用viewstate或會話狀態來使用?因爲我沒有將它綁定到任何嚴格的數據庫和我製作的表單中,只是一個臨時設計,並且在測試完成時該函數應該工作。
對於這種形式,我試圖避免表格格式,目前在div佈局中的一切。
我試過很多方法,從javascript到jquery,從clone()
到create()
方法。但他們都沒有給出我想要的結果。我使用的是aspx網頁形式的VS2012
。你的幫助真的很感謝!
是我行的代碼:
<div id="rows" class="block">
<div class="p2">
<input type="checkbox" class="checkbox" runat="server"/>
<input id="txt1" type="text" class="clsTxtBox10char" runat="server" maxlength="16" value="0.00" />
</div>
<div class="p3"> </div>
<div class="p4">
<input id="txt2" type="text" class="clsTxtBox10char" runat="server" maxlength="16" value="0.00"/>
</div>
<div class="p5"> </div>
<div class="p6">
<input id="txt3" type="text" class="clsTxtBox10char" runat="server" maxlength="16" value="0.00"/>
<span style="color:red;">*</span>
</div>
</div>
<div id="btn" class="block" style="text-align:center;">
<asp:Button ID="addrow" runat="server" CssClass="clsButton" Text="Add Row" />
<asp:Button ID="remove" runat="server" CssClass="clsButton" Text="Remove Row" width="90" />
<asp:Button ID="delete" runat="server" CssClass="clsButton" Text="Delete ATL"/>
</div>
下面是我的javascript代碼:
var cloneCount = 1;
//add new row
$("#addrow").click(function() {
$('#rows')
.clone(true).find('input:text').attr('id', 'txts' + cloneCount++).val("").end()
.attr('id', 'rows' + cloneCount++, 'class', 'block')
.insertAfter('[id^=rows]:last');
return false;
});
//Remove new row
$(document).on('click', '#remove', function() {
$('#rows' + --cloneCount).remove();
return false;
});
//delete atl
$(document).on('click', '#delete', function() {
if (!$('.checkbox').prop("checked")) {
$find('.checkbox:checked').remove();
}
});
代碼隱藏:
protected void addrow_click(object sender, EventArgs e)
{
Panel Panel1 = new Panel();
for (int s = 0; s > 1; s++)
{
string input = string.Empty;
//div that acts like row
var row = new HtmlGenericControl("div");
row.ID = "rows" + s.ToString();
row.Attributes.Add("class", "block");
var c1 = new HtmlGenericControl("div");
c1.Attributes.Add("class", "p2");
//add inside div row
for (int i = 0; i > 0; i++)
{
input += "<input id=\"cb" + i.ToString() + "\" type=\"checkbox\" class=\"checkbox\" runat=\"server\" > </input>"
+ " " + "<input id=\"tb" + i.ToString() + "\" type=\"text\" class=\"clsTxtBox10char\" runat=\"server\"> </input>";
}
//add the string in innerHTML as
c1.InnerHtml = input;
row.Controls.Add(c1);
var c2 = new HtmlGenericControl("div");
c2.Attributes.Add("class", "p3");
row.Controls.Add(c2);
var c3 = new HtmlGenericControl("div");
c3.Attributes.Add("class", "p4");
//add inside div row
for (int i = 0; i > 0; i++)
{
input += "<input id=\"tbm" + i.ToString() + "\" type=\"text\" class=\"clsTxtBox10char\" runat=\"server\"> </input>";
}
//add the string in innerHTML as
c3.InnerHtml = input;
row.Controls.Add(c3);
var c4 = new HtmlGenericControl("div");
c4.Attributes.Add("class", "p5");
row.Controls.Add(c4);
var c5 = new HtmlGenericControl("div");
c5.Attributes.Add("class", "p6");
//add inside div row
for (int i = 0; i > 0; i++)
{
input += "<input id=\"tbe" + i.ToString() + "\" type=\"text\" class=\"clsTxtBox10char\" runat=\"server\"> </input>"
+ " " + "<span style=\"color:red;\">*</span>";
}
//add the string in innerHTML as
c5.InnerHtml = input;
row.Controls.Add(c5);
Panel1.Controls.Add(row);
Panel1.Controls.Add(new LiteralControl("<br />"));
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
Response.Redirect("new_page.aspx");
}
我們可以看到您的.aspx代碼和代碼後面?從它的聲音,你可能錯過了某些東西來堅持行,例如runat =「server」屬性。 –
@peter我已經添加了我的代碼。 – Syafah
Syafah如果你不想保存動態元素,甚至在數據庫中,並沒有在服務器端的地方,你可以將它保存在vrowser本地存儲或cookie中。而且當你加載頁面時,你可以在這裏檢查。如果存在的元素添加到您的DOM –