Может ли ASP.Net asp:ControlParameter ControlID быть публичной общей переменной вместо метки asp:?
Может ли ASP.Net asp:ControlParameter ControlID быть публичной общей переменной вместо метки ASP:?
Мы использовали asp:label в качестве параметра для источника данных, но теперь хотим использовать общедоступную переменную общего доступа вместо метки.
Это разметка параметра с использованием метки asp:.
<asp:ControlParameter
ControlID="LabelCheckBoxMonday"
Name="DayOfWeekMonday"
PropertyName="Text"
Type="String" />
Мы добавили эту общедоступную переменную общего доступа в коде.
Public Shared blnDayOfWeekMonday As Boolean
Мы изменили разметку для параметра на это.
<asp:ControlParameter
ControlID="blnDayOfWeekMonday"
Name="DayOfWeekMonday"
PropertyName="Text"
Type="String" />
Это кодировка, которая помещает значения в переменную. Исходная кодировка, которая использовала это для метки, закомментирована.
Protected Sub ImageButtonInsertDayOfWeekMonday_Click(sender As Object, e As ImageClickEventArgs)
Dim imgTheImageButton As New ImageButton
imgTheImageButton = DetailsView.FindControl("ImageButtonInsertDayOfWeekMonday")
If imgTheImageButton.ImageUrl = "../../Images/checked.png" = True Then
imgTheImageButton.ImageUrl = "../../Images/unchecked.png"
' LabelCheckBoxMonday.Text = False
blnDayOfWeekMonday = False
Else
imgTheImageButton.ImageUrl = "../../Images/checked.png"
' LabelCheckBoxMonday.Text = True
blnDayOfWeekMonday = True
End If
End Sub
Все это является частью следующей команды InsertCommand:
InsertCommand=
"INSERT INTO [TeacherSchedule]
([DayOfWeekMonday],
[DayOfWeekTuesday],
[DayOfWeekWednesday],
[DayOfWeekThursday],
[DayOfWeekFriday],
[DayOfWeekSaturday],
[DayOfWeekSunday],
[StartTime],
[EndTime],
[ClassID],
[TeacherID])
VALUES (@DayOfWeekMonday,
@DayOfWeekTuesday,
@DayOfWeekWednesday,
@DayOfWeekThursday,
@DayOfWeekFriday,
@DayOfWeekSaturday,
@DayOfWeekSunday,
@StartTime,
@EndTime,
@ClassID,
@TeacherID)"
Когда веб-форма работает, ничего не происходит после изменения ее в общедоступную переменную общего доступа.
Можете ли вы сказать мне, что еще мне нужно сделать, чтобы продолжить?
* Обновить *
Используя предложение Marks, я узнал, как сделать asp:QueryStringParameter, но все еще не знаю, как заполнить его значением. Это параметр в виде asp:QueryStringParameter
<asp:QueryStringParameter
Name="DayOfWeekMonday"
QueryStringField="QSDayOfWeekMonday" />
Как заполнить QSDayOfWeekMonday в подпрограмме ImageButtonInsertDayOfWeekMonday_Click?
Я старался:
QSDayOfWeekMonday = False
но получил "не объявленную" ошибку.
* Полная разметка и кодовое кодирование *
2 ответа
Другой вариант - использовать параметр как:
<asp:Parameter Name="DateOfWeekMonthly" />
А в коде установите для свойства DefaultValue значение, которое вы хотите указать, например:
DataSourceControl1.Parameters["DateOfWeekMonthly"].DefaultValue = someVariable;
Это сработало для меня.
Вы можете установить это событие в событии Selecting, которое срабатывает; это событие срабатывает до того, как происходит выбор; следовательно, вы можете установить логическое значение. Я считаю, что вы можете добавить его в коллекцию значений, определенных в аргументе события.
Я использовал этот более короткий путь:
<asp:Parameter Name="DateOfWeekMonthly" Type="Boolean" DefaultValue="true" />
Это тоже работает.