Может ли 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

но получил "не объявленную" ошибку.

* Полная разметка и кодовое кодирование *

http://pastebin.com/embed_js.php?i=kye3c2U8

2 ответа

Решение

Другой вариант - использовать параметр как:

<asp:Parameter Name="DateOfWeekMonthly" />

А в коде установите для свойства DefaultValue значение, которое вы хотите указать, например:

DataSourceControl1.Parameters["DateOfWeekMonthly"].DefaultValue = someVariable;

Это сработало для меня.

Вы можете установить это событие в событии Selecting, которое срабатывает; это событие срабатывает до того, как происходит выбор; следовательно, вы можете установить логическое значение. Я считаю, что вы можете добавить его в коллекцию значений, определенных в аргументе события.

Я использовал этот более короткий путь:

<asp:Parameter Name="DateOfWeekMonthly" Type="Boolean" DefaultValue="true" />

Это тоже работает.

Другие вопросы по тегам