【发布时间】:2024-04-28 10:50:01
【问题描述】:
我有一些我继承的代码,它不是世界上最好的,但它可以工作,除了一个小例外:
此页面是目录搜索,它有由记录 ID 标识的控件,但是存在可能存在多个具有相同记录 ID 的结果的情况,从而使 .NET 失败。我最初实施了一项检查,只是没有将控件放在页面上,如果它已经存在的话,但我们收到了负面反馈。
我的问题是:有没有办法一次将相同的控件放在两个地方,例如,如果用户选中一个,则相应的也检查?我不太熟悉 .NET 的行为方式,但如果需要,我会尝试提供尽可能多的额外上下文。
编辑:这是通过循环结果数据表生成控件的更新代码
Dim cbxSendInfo As CheckBox
Dim strCheckboxID As String = "cbxSendInfo-" & drOrganizer("ID") & "-" & i
Debug.text = Debug.text & " Loading Checkbox (" & strCheckboxID & ")...<br />"
cbxSendInfo = New CheckBox
cbxSendInfo.ID = strCheckboxID
cbxSendInfo.enableViewState = true
下面是查找控件并构建联系人列表的代码:
Dim strCheckboxID As String = "cbxSendInfo-" & drOrganizer("ID") & "-" & i
Dim cbxSendInfo As CheckBox = Me.tblResults.FindControl(strCheckboxID)
If cbxSendInfo.Checked Then
alOrganizers.Add(drOrganizer("ID"))
End If
其中 drOrganizer("ID") 为记录 ID,i 为结果记录号。
至少从我的背景来看,我知道这是一种糟糕的做法,但就像我说的,这是被黑客入侵的继承代码。
【问题讨论】:
-
您使用的是什么类型的数据绑定控件?
-
我正在使用复选框控件。基本上,我有一个结果集,可能包含“重复”结果,相同的记录 ID,但不同的地址数据。我不是使用 findcontrol 来获取这些控件,查看它们是否被选中,然后通过电子邮件发送相关记录。
标签: asp.net vb.net user-controls duplication