0

在 AutoPostBack 事件触发之前,我将如何通过单击 ASP:Button 来设置会话变量。

这是我现在所拥有的,但我不确定我做对了:

 <asp:Button ID="CommitBTN" runat="server" PostBackUrl="~/MMR_Home.aspx" 
 onclick="CommitBTN_Click" UseSubmitBehavior="true" 
 OnClientClick='<% string temp1 = "true"; Session["ClickedFlag"] = temp1; %>' Text="Commit Changes to Database" />

这是执行此操作的正确方法还是我完全错了?

编辑:

将我的按钮标签更改为:

 <asp:Button ID="CommitBTN" runat="server" PostBackUrl="~/MMR_Home.aspx" 
 onclick="CommitBTN_Click" OnClientClick="document.getElementById('<%= Hidden.ClientID
  %>').value='1'" UseSubmitBehavior="true" Text="Commit Changes to Database" />

我收到这是我的错误:

Microsoft JScript 运行时错误:无法设置属性“值”的值:对象为空或未定义

4

2 回答 2

1
  1. 使用Hidden Field控件。

  2. Hidden Field将按钮Client单击更新 为 1。

  3. 更新隐藏字段会话变量Session Value中的更新。Page Load' event. The Value will be 1 then update the Session variable and set thevalue to 0 underneath the

  4. 使用Page Load事件的原因是点击页面事件,Buttonpage life cyclePreInit、Init、InitComplete、PreLoad、Load 在 Control 之前execution执行Button

Page events执行如下所示..

  1. 预初始化
  2. 在里面
  3. 初始化完成
  4. 预加载
  5. 加载
  6. 控制事件
  7. 加载完成
  8. 预渲染

希望对你有帮助...

于 2012-07-25T18:53:58.977 回答
1

用这个:

在 aspx 文件中:

<form runat="server">
    <asp:Button ID="CommitBTN" runat="server" Text="Button" onclick="CommitBTN_Click" OnClientClick="document.getElementById('HiddenField').value='Ram'"/>
    <asp:HiddenField ID="HiddenField" runat="server" />
</form>

或者

<script type="text/javascript">
    function setMyHiddenField(myValue) {
        document.getElementById('HiddenField').value = myValue;
}
</script>

<form runat="server">
<asp:Button ID="CommitBTN" runat="server" Text="Button" onclick="CommitBTN_Click" OnClientClick="setMyHiddenField('Ram')"/>
<asp:HiddenField ID="HiddenField" runat="server" />

==================================================== =================

在 aspx.cs 文件中

protected void CommitBTN_Click(object sender, EventArgs e)
    {
        Session["ClickedFlag"] = HiddenField.Value;
        Response.Write(Session["ClickedFlag"]);
    }

用您的值替换“Ram”很容易。;)

您可以轻松地将 Ram 更改为 temp1:

setMyHiddenField('temp1')

或者您可以在按下 CommitBTN 之前在您的另一个控制事件上调用此函数

于 2012-07-25T19:02:06.350 回答