1

ASP.Net asp:ControlParameter ControlID 可以是公共共享变量而不是 ASP:label 吗?

我们使用 asp:label 作为 DataSource 的参数,但现在想使用公共共享变量而不是标签。

这是使用 asp:label 的参数标记。

<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)" 

当 Web 表单运行时,将其更改为公共共享变量后没有任何反应。

你能告诉我我还需要做什么才能继续吗?

* 更新 *

使用 Marks 的建议,我发现了如何做一个 asp:QueryStringParameter 但仍然不知道如何用一个值填充它。这是作为 asp 的参数:QueryStringParameter

<asp:QueryStringParameter
    Name="DayOfWeekMonday" 
    QueryStringField="QSDayOfWeekMonday" />

如何在 ImageButtonInsertDayOfWeekMonday_Click 子例程中填充 QSDayOfWeekMonday?

我试过了:

QSDayOfWeekMonday = False

但出现“未声明”错误。

*完整的标记和代码隐藏编码*

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

4

2 回答 2

2

另一种选择是将参数用作:

<asp:Parameter Name="DateOfWeekMonthly" />

并在代码中将 DefaultValue 属性设置为您要指定的值,如下所示:

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

这对我有用。

您可以在触发的 Selecting 事件中建立此事件;此事件在选择发生之前触发;因此,您可以建立布尔值。我相信在这里,您可以将其添加到事件参数中定义的值集合中。

于 2013-04-25T15:50:30.510 回答
0

我使用了这种较短的方式:

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

这也有效。

于 2014-09-05T08:05:04.857 回答