1

在 ASP.Net VB.Net 代码隐藏文件中,我们有这个变量:

Public Shared blnTuesdayCheckBoxState As Boolean

我们正在尝试将变量用于 ASP:ConrolParameter 但似乎没有正确设置所有内容。

你能告诉我我需要做什么来纠正它吗?

这是在 DataSource 标记中使用的 ASP:ControlParameter:

<UpdateParameters>
    <asp:Parameter Name="DayOfWeekMonday" Type="String" />

    <asp:ControlParameter 
        ControlID="blnTuesdayCheckBoxState" 
        Name="DayOfWeekTuesday" 
        PropertyName="Text" 
        Type="String" />

    <asp:Parameter Name="DayOfWeekWednesday" Type="String" />
    <asp:Parameter Name="DayOfWeekThursday" Type="String" />
    <asp:Parameter Name="DayOfWeekFriday" Type="String" />
    <asp:Parameter Name="DayOfWeekSaturday" Type="String" />
    <asp:Parameter Name="DayOfWeekSunday" Type="String" />
    <asp:Parameter Name="StartTime" Type="String" />
    <asp:Parameter Name="EndTime" Type="String" />
    <asp:Parameter Name="ClassID" Type="Int32" />
    <asp:Parameter Name="TeacherID" Type="Int32" />
    <asp:Parameter Name="ID" />
</UpdateParameters>

如果我们可以让 DayOfWeekTuesday 工作,我们将在一周的其他日子里做同样的事情。

在 DetailsView 中是这个 ImageButton:

<asp:TemplateField HeaderText="Tuesday:">
    <EditItemTemplate>
        <asp:ImageButton 
            ID="ImageButtonEditDayOfWeekTuesday" 
            runat="server" 
            ImageUrl='<%# getChecked(Eval("DayOfWeekTuesday"))%>' 
            Height="15"
            Width="15" 
            OnClick="ImageButtonDayOfWeekTuesdayEdit_Click" 
            CausesValidation="False">
        </asp:ImageButton>
    </EditItemTemplate>
</asp:TemplateField>

当用户单击 ImageButton 时,此代码将执行以填充变量:

Protected Sub ImageButtonDayOfWeekTuesdayEdit_Click(sender As Object, e As ImageClickEventArgs)

    '     Dim chkTheCheckBox As New CheckBox
    Dim imgTheImageButton As New ImageButton

    '        chkTheCheckBox = DetailsView.FindControl("CheckBoxEditDayOfWeekTuesday")
    imgTheImageButton = DetailsView.FindControl("ImageButtonEditDayOfWeekTuesday")

    If blnTuesdayCheckBoxState = True Then
        imgTheImageButton.ImageUrl = "../../Images/unchecked.png"

        '           chkTheCheckBox.Checked = False
        blnTuesdayCheckBoxState = False
    Else
        imgTheImageButton.ImageUrl = "../../Images/checked.png"

        '          chkTheCheckBox.Checked = True
        blnTuesdayCheckBoxState = True
    End If
End Sub

上面的代码模拟了 CheckBox 的勾选,只是它是一个正在使用的图像而不是一个实际的 CheckBox。

如注释掉的代码所示,用于使用实际 CheckBoxes 存储要保存到数据库的值的原始编码,但我们希望将它们全部替换为 ImageButtons。

此外,如果我为 ASP:ControlParameter 使用 ASP:Label,那么一切正常。由于一周中有 7 天,我们希望使用变量而不是在网页上放置许多标签。

4

0 回答 0