gpt4 book ai didi

c# - 从 Javascript 触发回发失败

转载 作者:行者123 更新时间:2023-11-29 18:34:55 25 4
gpt4 key购买 nike

如果某个条件为真,我会尝试触发回发。最初,用户将单击我的表单上的一个按钮,服务器会做一些工作,并且在做这些工作的过程中,它会为一个隐藏字段分配值“1”。当页面在第一次回发后重新加载时,我正在尝试使用 javascript 检查隐藏字段,如果它是“1”,我需要页面再次回发,以便服务器端可以进行一些额外的处理。以这种迂回方式进行操作的原因是,我可以从后面的 C# 代码在表单上创建控件,并在 1 次用户交互中下载文件。这是我目前所拥有的:

<script type="text/javascript" language="JavaScript">
function atload() {
var HWInfo = document.getElementById('HiddenHW').value;
if (HWInfo == '1') {
alert("flag has been set");

__doPostBack('<%= hdnHidden.UniqueID %>', '');
}

}
$(document).ready(atload);

</script>

表示标志已正确设置的警报会触发,但 __doPostBack 不会。在我的 ASPX 文件中,这里是相关部分:

 <form id="InventoryForm" runat="server">

<div>
<asp:Label ID="lblClientList" runat="server" Text="Client List"></asp:Label>
<asp:DropDownList ID="comboClientList" runat="server"></asp:DropDownList>
<asp:Label ID="spacer1" runat="server" Text=" "></asp:Label>
<asp:Button ID="btnGenerateHWReport" runat="server" Text="Generate Hardware Inventory Report" />
<asp:Label ID="spacer2" runat="server" Text=" "></asp:Label>
<asp:Button ID="btnGenerateSWReport" runat="server" Text="Generate Software Inventory Report" />
<br />
<br />

<asp:Panel ID="MissingCompPanel" runat="server"></asp:Panel>
<asp:HiddenField ID="HiddenHW" runat="server" Value="0" />
<asp:HiddenField ID="hdnHidden" runat="server" />

</div>
</form>

我可以告诉回发永远不会触发,因为我在 Page_Load C# 代码隐藏中有永远不会被触发的断点。我几乎在每一行都有断点:

        if (!Page.IsPostBack)
{
// Page is not a postback, this is the first visit here
string foo = HiddenHW.Value;
}
else
{
// Page is a postback and not initial load
string foo = HiddenHW.Value;
}

为什么我的 __doPostBak 在警报后没有触发,有没有更好的方法来做到这一点?我想要的最终结果是,如果我的隐藏字段是“1”,那么我希望我第二次访问服务器 1) 实际发生并且 2) 知道隐藏字段是“1”而不是默认的“0”。

谢谢!

最佳答案

以编程方式单击提交按钮并让它像往常一样调用 __doPostBack 怎么样?

关于c# - 从 Javascript 触发回发失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4200788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com