首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Checkbox类型转换

Checkbox类型转换
EN

Stack Overflow用户
提问于 2012-09-24 20:26:53
回答 1查看 4.9K关注 0票数 0

我正在使用带有C#的Visual studio 2010。

我有一个问题,在我的一个ascx页面上,我创建了一个复选框列,如下所示:

代码语言:javascript
复制
<asp:TemplateField ItemStyle-HorizontalAlign="left" HeaderStyle-HorizontalAlign="Left" HeaderText="Beetald">
    <HeaderTemplate>
        <input type="checkbox" id="selectallTeachers" class="selectallTeachers" onclick="javasctipt:SelectheaderCheckboxesTeacher();" />
    </HeaderTemplate>
    <ItemTemplate>
        <input type="checkbox" id="chkPaid" class="caseTeacher" name="caseTeacher" runat="server" />
    </ItemTemplate>
</asp:TemplateField>

我创建的javascript如下所示:

代码语言:javascript
复制
<script type="text/javascript">
    // Select/Deselect checkboxes based on header checkbox
    function SelectheaderCheckboxesTeacher() {
        if ($("#selectallTeachers").val() == 'on') {
            $('.caseTeacher').attr('checked', 'checked');
            $("#selectallTeachers").val('off');
        }
        else if ($("#selectallTeachers").val() == 'off') {
            $('.caseTeacher').removeAttr("checked");
            $("#selectallTeachers").val('on');
        }

        $(".caseTeacher").click(function () {
            if ($(".caseTeacher").length == $(".caseTeacher:checked").length) {
                $("#selectallTeachers").attr("checked", "checked");
                $("#selectallTeachers").val('off');
            } else {
                $("#selectallTeachers").removeAttr("checked");
                $("#selectallTeachers").val('on');
            }
        });
    }
    // if all checkbox are selected, check the selectallTeachers checkbox
    // and viceversa   
</script>  

对于buttonclick事件,我写了以下内容:

代码语言:javascript
复制
protected void btnDeleteSelectedMessages_Click(object sender, EventArgs e)
{
    if (currentGridView == null)
        setCurrentGridView();

    //controleer voor elke rij welke checkbox is geselecteerd
    foreach (GridViewRow row in currentGridView.Rows)
    {
        CheckBox cb = (CheckBox)row.FindControl("chkPaid");
        Guid messageID = (Guid)currentGridView.DataKeys[row.DataItemIndex].Value;

        //als de checkbox is geselecteerd het bericht verwijderen
        if (cb != null && cb.Checked)
        {
            if (currentGridView.ID.Equals("Messages"))
                b.BussinesMessageReceiver.DeleteMessageReceiver(messageID, MessageBoxPerson);
            else if (currentGridView.ID.Equals("MessagesSent"))
                b.BussinesMessage.DeleteMessageSender(messageID);
            else //MessagesDeleted
                b.BussinesMessage.DeleteMessage(messageID, (Page.Server.MapPath("~/Upload/") + messageID));
            continue;
        }
    }
    btnDeleteSelectedMessages.Enabled = false;
    selectLocation.Visible = false;
    clearSelectedMessageSession();

    //Update the GridView
    BindGridView();
}

它在行中显示一个错误

代码语言:javascript
复制
CheckBox cb = (CheckBox)row.FindControl("chkPaid");

因为我是通过输入类型创建的,而不是直接通过复选框。

EN

回答 1

Stack Overflow用户

发布于 2012-09-24 20:30:40

input type="checkbox"不是CheckBox。因此,您应该将其强制转换为HtmlInputCheckBox (或使用CheckBox)。

代码语言:javascript
复制
var cb = (HtmlInputCheckBox)row.FindControl("chkPaid");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12565028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档