提前感谢您的帮助。
我正在使用c#.net。
我的网页上有两个视图(包含在一个多视图中),两个视图都包含按钮。
view_1
包含转发器/数据源和自定义的“编辑”按钮(保存返回的每行的ID)。
view_2
包含“更新”表单和“更新”按钮。当用户按下更新按钮时,将更新该特定行的数据库中的信息。
我认为问题在于我在view_2中的“更新”按钮
代码隐藏('更新'按钮),我有一个if语句:
protected void Page_Load(object sender, EventArgs e)
{
updateSuccessFailed.Visible = false;
if (!Page.IsPostBack)
{
_multiView1.ActiveViewIndex = 0;
}
}
protected void update_Click(object sender, EventArgs e)
{
var Id = Convert.ToInt32((ID.Value));
notYetUpdated.Visible = true;
updateSuccessFailed.Visible = false;
tblV updateV = new tblV();
updateV.vID = venueId;
updateV.vame = updateName.ToString();
updateV.vPostcode = updatePropPostcode.ToString();
if (vRepos.Update(updateV))
{
notYetUpdated.Visible = false;
updateSuccessFailed.Visible = true;
updateMessage.Text = "Updated.";
}
else
{
notYetUpdated.Visible = false;
updateSuccessFailed.Visible = true;
updateMessage.Text = "An error has occurred, please try again.";
}
}
_view2
<asp:View ID="_view2" runat="server">
<div style="text-align:center" runat="server" id="notYetUpdated">
<table border="0" cellspacing="1">
<tr>
<td style="text-align:left;">Name</td>
<td style="text-align:left;"><asp:TextBox ID="updateName" MaxLength="60" runat="server" /></td>
</tr>
<tr>
<td style="text-align:left;">Postcode</td>
<td style="text-align:left;"><asp:TextBox ID="updatePropPostcode" MaxLength="60" runat="server" /></td>
</tr>
</table><br />
<asp:Button ID="updateVCancel" Text="Cancel" runat="server" onclick="cancel_Click" CssClass="standardButton" />
<asp:Button ID="updateVConfirm" Text="Update" runat="server" onclick="update_Click" CssClass="standardButton" />
<asp:HiddenField ID="vUpdateID" runat="server" />
</div>
<div style="text-align:center" runat="server" id="updateSuccessFailed">
<p><asp:Label ID="updateMessage" runat="server" /></p>
<asp:Button ID="updateBack" Text="Back To Start" runat="server" onclick="backToStart_Click" CssClass="standardButton" />
</div>
</asp:View>
notYetUpdated / updateSuccessFailed是包含不同信息的div。
当用户首次“更新”记录时,它会使正确的div显示。 (notYetUpdated - 保存表单信息/ updateSuccessFailed - 保存一条消息,说明记录是否已更新)。但是,当您再次访问view_2时,它会访问update_Click事件并且updateSuccessFailed是可见的,即使它不应该是。
我以为我可以使用下面的代码清除视图状态中的所有存储信息,但这不起作用。
ViewState.Clear();
ClearChildViewState();
谢谢
克莱尔: - )答案 0 :(得分:0)
第4行应该是updateSuccessFail ed .Visible = false;?
答案 1 :(得分:0)
这是我的错误。我改编了我的代码,现在是:
var Id = Convert.ToInt32((ID.Value));
tblV updateV = new tblV();
updateV.vID = venueId;
updateV.vame = updateName.ToString();
updateV.vPostcode = updatePropPostcode.ToString();
notYetUpdated.Visible = false;
updateSuccessFailed.Visible = true;
if (vRepos.Update(updateV))
{
updateMessage.Text = "Updated.";
}
else
{
updateMessage.Text = "An error has occurred, please try again.";
}
希望这有助于其他人。