#asp.net #vb.net
#asp.net #vb.net
Вопрос:
Я пытаюсь выполнить цикл через элемент управления GridView. Он содержит переключатель, и я хотел бы установить его свойство checked на основе определенного условия. Однако метод FindControl ничего не возвращает.
Вот код aspx:
<asp:GridView ID="GridViewInfo"
runat="server"
AutoGenerateColumns="False"
DataKeyNames="Result_ID">
<Columns>
<asp:TemplateField HeaderStyle-Width="3%" HeaderText="SELECT">
<ItemTemplate>
<input name="RadioButtonResultID"
id="RadioButtonResultID" type="radio"
value='<%# Eval("Result_ID") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Characteristics"
DataField="Characteristics" />
</Columns>
</asp:GridView>
Код, лежащий в основе:
Private Sub HighlightSelectedRow(ByVal id As String)
Dim rowCount As Int32 = 0
For Each row As GridViewRow In GridViewLabInfo.Rows
If (GridViewLabInfo.DataKeys(rowCount).Value.ToString() = id) Then
row.CssClass = "SelectedRowStyle"
'Both of the below lines are failing
TryCast(row.FindControl("RadioButtonResultID"), RadioButton).Checked = True
CType(row.FindControl("RadioButtonResultID"), RadioButton).Checked = True
End If
rowCount = rowCount 1
Next
End Sub
Комментарии:
1. Почему мы не можем установить здесь проверенное значение? пожалуйста, любая ссылка.
2. поместите runat=server в теги этого элемента управления.
Ответ №1:
Вы привели неверно. Это не asp.net переключатель (RadioButton), но является HTML-кнопкой,
Таким образом, ваше приведение в этом случае должно быть:
TryCast(row.FindControl("RadioButtonResultID"), HtmlInputRadioButton ).Checked = True
И вам даже не нужно приведение, но это должно сработать:
Dim MyRadioBut As HtmlInputRadioButton = row.FindControl("RadioButtonResultID")
MyRadioBut.Checked = True
Однако в ОБОИХ вышеуказанных случаях? Вы не можете получить элемент управления в коде, если не укажете, что этот элемент управления отображается сервером.
Вам нужно добавить runat=»server» .
например, это:
<input name="RadioButtonResultID"
id="RadioButtonResultID" type="radio"
value='<%# Eval("Result_ID") %>' runat="server" />