我的页面上有一个带有搜索功能的表单,当您进行搜索时,它会在表单中填入该记录的数据。
在表单中是另一个用于查找引用的按钮和文本框。单击按钮并选择要放入文本框的记录。
问题是,当数据从搜索发送到页面时,所有其他文本框的内容都会丢失,只留下参考框。
这是数据的发送方式:所选记录具有添加到会话的ID,然后父窗口重新加载。当它重新加载时,页面在搜索中查找ID,然后填充屏幕。
答案 0 :(得分:1)
您可以使用更新面板限制对页面某些部分的更新。 请参阅Update Panel Documentation,从而保持不应再次发布的控件状态。
答案 1 :(得分:1)
默认的asp.net行为会在回发后保留值,除非需要部分呈现,否则无需使用updatePanel。
您确定自己没有清除.cs文件中的值吗? textBoxes的TextMode是什么?
尝试重现您的方案但未能这样做。
这是代码--aspx文件代码
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox3" runat="server" TextMode="Password"></asp:TextBox>
<asp:TextBox ID="txtSearch" runat="server"></asp:TextBox>
<asp:Button ID="btnSearch" runat="server" Text="Button" OnClick="btnSearch_Click" />
</div>
</form>
aspx.cs文件代码
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
TextBox1.Text = "Text box 1 value";
TextBox2.Text = "Text box 2 value";
TextBox3.Text = "password";
}
}
protected void btnSearch_Click(object sender, EventArgs e)
{
string SearchTerm = txtSearch.Text;
string textValue1 = TextBox1.Text, textValue2 = TextBox2.Text, textValue3 = TextBox3.Text;
}
}
答案 2 :(得分:0)
将EnableViewState=true
添加到您要保留的每个文本框中。
答案 3 :(得分:0)
您可以使用javascript设置值,而无需刷新父页面。