2012-07-25 75 views
0

在AutoPostBack事件触发之前,我将如何设置会话变量来点击ASP:Button。在AutoPostBack在asp触发之前设置会话变量:按钮

这是我现在所拥有的,但我不完全知道我在做这个权利:

<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" /> 

我收到这是我的错误:

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

+0

你需要对此查询有更多帮助? – 2012-07-26 15:44:20

回答

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”很容易。;)

你可以改变公羊TEMP1简单:

setMyHiddenField( 'temp1目录')

或者,你可以调用这个函数在您的另一控制事件befor CommitBTN按下

+0

这两个答案我会尝试。我永远不会使用隐藏字段。我会让你们知道它是怎么回事。 – 2012-07-25 19:04:25

+0

Microsoft JScript运行时错误:无法设置属性“值”的值:对象为空或未定义 – 2012-07-25 19:22:52

+0

您能告诉我们代码行崩溃吗? – 2012-07-25 19:39:35

1
  1. 使用Hidden Field 控制。

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

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

  4. 原因Page Load事件的用法是,在点击Button为每page life cycle页面事件,如PreInit,初始化,InitComplete,预紧力,负载Button控制的execution之前执行。

Page events执行发生像下面..

  1. Preinit
  2. Init
  3. InitComplete
  4. PreLoad
  5. Load
  6. Control Event
  7. Load Complete
  8. Pre Render

希望这将帮助你...