隐藏字段的值在javascript函数中找不到
Value of Hiddenfield not found in javascript function
我花了几天的时间研究我的问题,并没有能够使它正常工作。我知道这里有一些与这个问题相关的话题,阅读它们对我有所帮助,但我遇到了一点障碍,希望你能朝正确的方向推动我。
我写了一个小的。net 3.5 VB。NET web应用程序,允许用户维护一些数据。它由3页组成。我不太喜欢的一个需求是,用户希望在完成所有更改后点击保存按钮,而不是每次将更改应用到网格时都保存回DB。
我使用会话对象来存储每个页面上的对象集合,并且如果用户试图更改下拉菜单的值或在有待处理操作时离开页面,则希望用对话框提示用户。在这里和其他地方进行了大量研究之后,我决定在页面上创建一个隐藏字段,并在每次在服务器端更新操作集合时更新其值。然后我想计算这个值,如果它大于0,我想提示用户保存更改。
我的函数:
<telerik:RadCodeBlock ID="RadCodeBlock2" runat="server">
<script type="text/javascript">
window.onbeforeunload = confirmExit;
function confirmExit()
{
var actionCount = $get('<%=ActionCounterField.ClientID %>').value;
if (actionCount > 0) {
alert("Pending Changes!");
}
}
</script>
</telerik:RadCodeBlock>
我的隐藏字段声明:
<asp:HiddenField id="ActionCounterField" runat="server" />
服务器端代码:
Protected Sub UpdateActionCount()
ActionCounterField.Value = GoalCategoryActionList.Count
End Sub
当我调试应用程序并向网格添加一条记录时,服务器端代码被正确执行。我还验证了隐藏控件是由javascript函数找到的。我还没能弄清楚的是,为什么隐藏的字段值没有被函数找到。
非常感谢任何帮助。谢谢你!
好了,我知道怎么做了。我不会说这是最优雅的解决方案,但它的工作方式正是我想要的,所以我很高兴。谢谢你的回复。谢谢你的帮助。
首先,我将隐藏字段更改为telerik RadTextBox,并将其设置为不显示。RadTextBox似乎比hiddenfield更适合RadGrid。
<telerik:RadTextBox id="ActionCounterField" runat="server" style="display: none;" AutoPostBack="true" />
然后我把它连接在AjaxManager中,由我的RadGrid来改变。
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadGrid1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="ActionCounterField"></telerik:AjaxUpdatedControl>
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
我有条件地调用确认函数。当我的用户点击保存或撤消按钮时,更改将被持久化到数据库或撤消,而不需要确认。但是,如果他们试图以任何其他方式离开页面,则会提示他们保存更改。如果点击"OK",服务器端就会调用保存按钮处理程序。如果点击"取消",则调用撤消按钮处理程序。
var allowConfirm = true
window.onbeforeunload = confirmExit;
function confirmExit()
{
var actionCountHolder = document.getElementById("<%=ActionCounterField.ClientID %>");
var actionCount = actionCountHolder.value;
if (allowConfirm == true)
{
if (actionCount > 0)
{
var conf = confirm("You have pending changes. Save them?");
if (conf == true)
{
var saveButton = document.getElementById("<%=btnSave.ClientID %>");
saveButton.click()
}
else
{
var cancelButton = document.getElementById("<%=btnCancel.ClientID %>");
cancelButton.click();
}
}
}
else {
allowConfirm = true;
}
}
另外,我有保存和撤消按钮调用的OnClientClick操作的disablecconfirm函数。
<asp:Button ID="btnSave" OnClick="btnSave_Click" OnClientClick="disableConfirm()" runat="server" Text="Apply" />
<asp:Button ID="btnCancel" OnClick="btnUndo_Click" OnClientClick="disableConfirm()" runat="server" Text="Undo" />
- 在wordpress中找不到jQuery函数
- 在页面中找不到元素的正确位置.函数未考虑填充
- JavaScript函数在Safari中有效,但在Firefox中找不到
- 为什么当我使用初始化触发器函数时,我总是找不到脚本函数:发送发票如果新
- 找不到柴函数
- 找不到 jquery 输入自动完成函数
- 谷歌应用程序脚本-正在尝试使用getUrl.TypeError:在对象工作表中找不到函数getUrl
- 继续得到一个错误,即某个东西不是函数,但找不到原因
- Javascript 引用错误 - 在对象内找不到函数
- 谷歌脚本在对象中找不到函数LastIndexOf
- 找不到Google Apps脚本库嵌套函数
- 函数找不到变量
- jQuery函数找不到容器 - 可能是克隆错误
- $(document).ready() 中的函数找不到 DOM 的主体元素
- Ajax函数找不到正确的数据
- ReactJS映射函数找不到未定义的属性
- jQuery's getScript函数找不到我的.js.Rails中的动词模板
- jQuery的点击函数找不到选择器
- Angular 2-从JS文件(chart.JS)调用函数-找不到函数
- JS构造函数找不到全局变量