在asp:Button中触发AutoPostBack之前设置会话变量



在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运行时错误:无法设置属性"value"的值:对象为null或未定义

使用此:

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按下之前对另一个控制事件调用此函数

  1. 使用Hidden Field控件。

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

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

  4. 使用Page Load事件的原因是,根据page life cycle单击Button时,PreInit、Init、InitialComplete、PreLoad、Load等页面事件在Button控件的execution之前执行。

Page events执行如下。。

  1. Preinit
  2. Init
  3. InitComplete
  4. 预加载
  5. 负载
  6. 控制事件
  7. 加载完成
  8. 预渲染

希望这能帮助你。。。

相关内容

  • 没有找到相关文章

最新更新