我有一个表单,其中包含三个带有硬编码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())"