[英]How to load/show asp.net form(panel) on click
I have a form with some data inside my .aspx webform 我的.aspx网络表单中有一个包含一些数据的表单
I also have a button. 我也有一个按钮。 When i click that button, i need to load another, exactly the same form, but without refreshing the site, so i wouldn't loose any data in the previous form. 当我单击该按钮时,我需要加载另一个完全相同的表单,但无需刷新站点,因此我不会丢失以前表单中的任何数据。
How can i do this? 我怎样才能做到这一点?
<form id="form1" runat="server">
<asp:Label ID="labelOpis" runat="server" Text="Opis izdelka"></asp:Label><br />
<asp:TextBox ID="inputTextArea" class="form-control" runat="server"></asp:TextBox><br />
<span style="color:red"><asp:Label ID="errorOpis" runat="server"></asp:Label></span><br />
<asp:Label ID="labelKolicina" runat="server" Text="Količina"></asp:Label><br />
<asp:TextBox ID="inputKolicina" type="number" class="form-control" runat="server"></asp:TextBox><br />
<button id="btnAddNewProduct" class="form-control">Add new product</button>
UPDATE UPDATE
.aspx 的.aspx
<script src="Content/jquery-1.12.2.min.js"></script>
<link href="Content/bootstrap.min.css" rel="stylesheet" />
<script src="Content/bootstrap.min.js"></script>
<script src="Content/hideForm.js"></script>
<script src="Content/live-preview.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="//resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
$( "#accordion" ).accordion();
} );
</script>
<script type="text/javascript">
$(document).ready(function () {
$('.ticket').click(function () {
$(".skrijPrvo").slideToggle();
});
});
</script>
<body>
<div class="container-fluid">
<div class="container">
<div class="row">
<div class="col-sm-6 col-sm-offset-3">
<form id="form1" runat="server">
<div class="form-group">
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder><br />
</div>
<asp:Button ID="Button2" runat="server" class="form-control" Text="Zaključi nakup"/><br />
<asp:Button ID="Button3" runat="server" class="form-control" Text="Nazaj"/><br />
<asp:Button ID="Button4" runat="server" Text="Dodaj nov artikel" class="ticket" OnClick="AddControl_Click" /><br />
</form>
</div>
</div>
</div>
</div>
ascx ASCX
<body>
<div id="accordion">
<h3>Dodaj nov izdelek</h3>
<div class="skrijPrvo">
<asp:Label ID="labelOpis" runat="server" Text="Opis izdelka"></asp:Label><br />
<asp:TextBox ID="inputTextArea" class="form-control" runat="server"></asp:TextBox><br />
<span style="color:red"><asp:Label ID="errorOpis" runat="server"></asp:Label></span><br />
<asp:Label ID="labelKolicina" runat="server" Text="Količina"></asp:Label><br />
<asp:TextBox ID="inputKolicina" type="number" class="form-control" runat="server"></asp:TextBox><br />
<span style="color:red"><asp:Label ID="errorKolicina" runat="server"></asp:Label></span><br />
<asp:DropDownList ID="inputDropdownList" class="form-control" runat="server">
<asp:ListItem Text="" Value=""></asp:ListItem>
<asp:ListItem Text="Material1" Value="Material1"></asp:ListItem>
<asp:ListItem Text="Material2" Value="Material2"></asp:ListItem>
<asp:ListItem Text="Material3" Value="Material3"></asp:ListItem>
</asp:DropDownList><br />
<span style="color:red"><asp:Label ID="errorDropDown" runat="server"></asp:Label></span><br />
<asp:FileUpload ID="fileUpload" runat="server" class="form-control" onchange="readURL(this)" /><br />
<span style="color:red"><asp:Label ID="errorFileUpload" runat="server"></asp:Label></span><br />
<asp:Image ID="fileUploadImg" class="form-control" runat="server" Height="300px"/><br />
</div>
</div>
I think you are looking for dynamically added User Controls . 我认为您正在寻找动态添加的用户控件 。
Add a new User Control to your project and put your form in it. 在您的项目中添加一个新的用户控件,并将您的表单放入其中。
<asp:Label ID="labelOpis" runat="server" Text="Opis izdelka"></asp:Label>
<br />
<asp:TextBox ID="inputTextArea" class="form-control" runat="server"></asp:TextBox>
<br />
<span style="color: red"><asp:Label ID="errorOpis" runat="server"></asp:Label></span>
<br />
<asp:Label ID="labelKolicina" runat="server" Text="Količina"></asp:Label>
<br />
<asp:TextBox ID="inputKolicina" type="number" class="form-control" runat="server"></asp:TextBox>
<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
On the page that will contain the Controls you need to add a PlaceHolder 在包含控件的页面上,您需要添加PlaceHolder
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
<br />
<asp:Button ID="AddControl" runat="server" Text="Button" OnClick="AddControl_Click" />
Then you need to (re)create the User Controls on every Page Load and the Add Control button click. 然后,您需要在每个页面加载上(重新)创建用户控件,然后单击添加控件按钮。
protected void Page_Load(object sender, EventArgs e)
{
//check if the viewstate exists and if so, build the controls
if (ViewState["controlCount"] != null)
{
addControls(Convert.ToInt32(ViewState["controlCount"]));
}
else
{
//if not add just 1 control
addControls(1);
}
}
private void addControls(int n)
{
//loop the amount of controls and add them to the placeholder
for (int i = 0; i < n; i++)
{
UserControl1 control = (UserControl1)LoadControl("~/UserControl1.ascx");
PlaceHolder1.Controls.Add(control);
}
//save the control count into a viewstate
ViewState["controlCount"] = PlaceHolder1.Controls.Count;
}
protected void AddControl_Click(object sender, EventArgs e)
{
//add an extra control
addControls(1);
}
UPDATE UPDATE
You can access the values of the TextBoxes by setting a property in the User Control with a getter and a setter. 您可以通过使用getter和setter在用户控件中设置属性来访问TextBoxes的值。
public string textBox1
{
get
{
return TextBox1.Text;
}
set
{
TextBox1.Text = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
And now you can access them from the Parent by looping all the controls and get the value. 现在,您可以通过循环所有控件并获取值来从父级访问它们。
foreach (UserControl1 control in PlaceHolder1.Controls)
{
Label1.Text += control.textBox1 + "<br>";
}
add you code inside 在里面添加代码
<asp:updatepanel>
tag and add onclick properties to you button. 标记并向您的按钮添加onclick属性。 After that you can write your business code in code behind (aspx.cs). 之后,您可以在(aspx.cs)后面的代码中编写业务代码。 This is default ajax in asp.net 这是asp.net中的默认ajax
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.