标签: ispostback

IsPostback在技术上如何运作?

我目前遇到一个奇怪的问题,即当我点击一个只返回同一页面的asp.net按钮时,除了谷歌Chrome之外的所有浏览器都在Page_Load事件中注册对IsPostback的调用为真.

这让我试着发现ASP .Net页面中的IsPostback属性是如何在技术上实现的,这是我很难找到的.

我的想法是,它可能与以下内容有关;

  • 请求VERB类型是POST而不是GET.
  • 包含Viewstate信息的隐藏输入没有信息,因此没有先前提交的控制信息可用.
  • 请求标头中的http referer与当前URL相同.

任何人都可以提供用于确定IsPostback布尔属性的条件的实际细分吗?

注意:我正在寻找实际的实现而不是感知/理论,因为我希望用它来积极解决问题.我也搜索过MSDN,迄今为止找不到任何准确覆盖该机制的技术文章.

布莱恩,提前谢谢.

asp.net http-verbs http-headers ispostback

13
推荐指数
1
解决办法
7054
查看次数

如何通过单击另一页面的链接按钮来调用按钮的单击事件,而无需在c#ASP.NET中回发

当我点击右上方的绿色按钮时,页面数据将保持原样.并且将打开一个新窗口以显示其他功能

点击linkbutton后,即左侧.AppointMentScheduler',我的数据将被清除

我有一个LinkButtonmasterpage和的LinkBut​​ton的点击,我重定向到,比方说,Page1.aspx.在Page1.aspx上,我有一个button1.点击它button1,我打开新窗口,不影响数据Page1.aspx.

但是,当我点击LinkButton主页,重定向到Page1.aspx代码后面,单击时button1,Page1.aspx数据会被更改.

如何防止这种情况.我提供我的代码.

主页上的LinkBut​​ton:

<asp:LinkButton ID="lnkAppointMent" runat="server" OnClick="lnkAppointMent_Click"><span>Appointment Scheduler </span></asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)

单击LinkBut​​ton的事件:

protected void lnkAppointMent_Click(object sender, EventArgs e)
        {
            Session["PhoneCenter"] = "Appointment";
            Response.Redirect("PhoneMessage.aspx");
        }
Run Code Online (Sandbox Code Playgroud)

PageLoad重定向页面(PhoneMessage.aspx):

    protected void Page_Load(object sender, EventArgs e)
                {
                    fillCustomTypeMessages();            
                    if (!Page.IsPostBack)
                    {
                        .

    .

    .
                        else if (Session["PhoneCenter"].ToString() == "Appointment")
                        {
                            btnScheduleAppointments_Click(btnScheduleAppointments, null);
                        }

.

.

.
Run Code Online (Sandbox Code Playgroud)

PhoneMessage.aspx上的按钮:

<div style="float: right; padding-right: 120px">
                                <asp:Button ID="btnScheduleAppointments" runat="server" OnClick="btnScheduleAppointments_Click" …
Run Code Online (Sandbox Code Playgroud)

javascript c# asp.net ispostback

5
推荐指数
1
解决办法
1498
查看次数

GridView中的CheckBox"Checked"值始终为false

我正在使用从数据库填充的checkbox列.下面的按钮应该检索已经检查过的行的数据.当我遍历所有行时,即使我在单击按钮之前检查了所有行,它们也都没有.这是代码:gridviewSQLgridviewcheckboxe'scheckboxe'schecked==trueASP.NET

<asp:TemplateField>
        <ItemTemplate>
            <asp:CheckBox ID="chkRow" runat="server" />
        </ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

这是按钮的动作循环遍历所有行的复选框:

protected void GetSelectedRecords(object sender, EventArgs e)
{
    foreach (GridViewRow row in GridView1.Rows)
    {
        if (row.RowType == DataControlRowType.DataRow)
        {
            CheckBox chkRow = (row.Cells[0].FindControl("chkRow") as CheckBox);               
            if (chkRow != null && chkRow.Checked) //chkRow.Checked is always "false" 
            {
                string name = row.Cells[2].Text;
            }
        }  
     }              
}
Run Code Online (Sandbox Code Playgroud)

非常感谢提前.我非常感谢任何帮助.

c# asp.net checkbox gridview ispostback

4
推荐指数
1
解决办法
3983
查看次数

IsPostBack总是返回false

我遇到了一个奇怪的问题.每次刷新页面IsPostBack都是假的.
为了确保我的内容或母版页中没有任何内容导致这种情况,我创建了一个空的Web表单并在调试模式下将其启动.仍然,在回发上,我已经IsPostBack设置为假.

我有enableSessionState="true"<sessionState timeout="30" />web.config.

这让我疯了!

更新:我按F5刷新页面.根据答案,这不应该导致回发.我想知道什么时候使用刷新页面(甚至手动)并防止对db进行一些修改.
这有解决方案吗?

asp.net postback session-state asp.net-4.0 ispostback

3
推荐指数
2
解决办法
1万
查看次数

在Page_Load子例程中使用.IsPostBack

它是一个"最佳实践",总是在Web示例的Page_Load子例程中使用.IsPostBack,就像在这个示例编码中一样?

我希望可以提出这个问题.如果没有,我会立即删除这个问题.

基本上我想编码你大多数编码的方式.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Not Page.IsPostBack Then

        ' More coding will go here.
        '--------------------------
    End If
Run Code Online (Sandbox Code Playgroud)

请给出它的用法的利弊.

vb.net asp.net ispostback

3
推荐指数
1
解决办法
1万
查看次数