点击后退按钮会丢失IE中的ID值

时间:2011-12-06 15:04:23

标签: asp.net vb.net

我有一个表单,其中包含三个带有硬编码ID的单选按钮,当我提交页面然后返回单选按钮id分别更改为ctl23,ctl24和ctl25。我不希望发生这种情况,因为ID取决于提交页面时会发生什么。

我怎么能让这件事没有发生?

修改

此外,当我按下后退按钮后按下单选按钮页面上的提交按钮时,我收到此错误并显示堆栈

发生错误,因为无法找到ID为“ctl23”的控件,或者在回发后为同一ID分配了不同的控件。如果未分配ID,请显式设置引发回发事件的控件的ID属性以避免此错误。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Web.HttpException:发生错误,因为无法找到ID为“ctl23”的控件,或者在回发后将不同的控件分配给相同的ID。如果未分配ID,请显式设置引发回发事件的控件的ID属性,以避免此错误。

来源错误:

在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

堆栈追踪:

[HttpException(0x80004005):发生错误,因为无法找到ID为“ctl23”的控件,或者在回发后将不同的控件分配给相同的ID。如果未分配ID,请显式设置引发回发事件的控件的ID属性,以避免此错误。]    System.Web.UI.Page.ProcessPostData(NameValueCollection postData,Boolean fBeforeLoad)+836    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+1743

修改

单选按钮ID如何硬编码

Public Function GetDivButton(ByVal imageUrl As String, ByVal text As String, ByVal selected As Boolean, ByVal radioArgument As String) As Div

    Dim div As New Div

    If selected Then
        div.CSSClass = "createadbuttonselected"
    Else
        div.CSSClass = "createadbutton"
    End If


    Dim divButtonImage As New Div
    div.Controls.Add(divButtonImage)
    divButtonImage.CSSClass = "createadbuttonimage"

    Dim image As New Image
    divButtonImage.Controls.Add(image)
    image.ImageUrl = imageUrl

    Dim divButtonText As New Div
    div.Controls.Add(divButtonText)
    divButtonText.CSSClass = "createadbuttontext"
    divButtonText.InnerText = text

    Me._Radio = New RadioButton
    div.Controls.Add(Me._Radio)
    Me._Radio.GroupName = "stepcreateadgroupname"
    Me._Radio.ID = radioArgument

    If selected Then
        Me._Radio.Checked = True
    End If

    Return div

End Function


divStepContentInner.Controls.Add(Me.GetDivButton("../../images/createad/livefeed.png", "xxxxx", True, "Live"))
    divStepContentInner.Controls.Add(Me.GetDivButton("../../images/createad/search.png", "xxxxx", False, "Search"))
    divStepContentInner.Controls.Add(Me.GetDivButton("../../images/createad/featured.png", "xxxxx", False, "Featured"))

提交按钮

Me._LinkButton = New HyperLink
    divStepButtonContainer.Controls.Add(Me._LinkButton)
    Me._LinkButton.ID = "HyperLinkNextCreateAd"
    Me._LinkButton.CssClass = "stepbutton"
    Me._LinkButton.NavigateUrl = "javascript:__doPostBack('CreatePageAdControl1', $('input:radio[name=stepcreateadgroupname]:checked').val())"

0 个答案:

没有答案