Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET CheckBoxField-设置值问题_C#_Asp.net - Fatal编程技术网

C# ASP.NET CheckBoxField-设置值问题

C# ASP.NET CheckBoxField-设置值问题,c#,asp.net,C#,Asp.net,我试图传递用户选择的一些值,但无法在gridview中设置CheckBoxField 有人能告诉我怎么做吗 这是我到目前为止的代码 <asp:GridView ID="GridView1" SkinID="CompacGrid" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" Width="400px" AllowPaging="True" BackColor="

我试图传递用户选择的一些值,但无法在gridview中设置CheckBoxField

有人能告诉我怎么做吗

这是我到目前为止的代码

<asp:GridView ID="GridView1" SkinID="CompacGrid" runat="server" AutoGenerateColumns="False"
            DataSourceID="ObjectDataSource1" Width="400px" AllowPaging="True" BackColor="White" 
                                BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3" 
                                GridLines="Vertical">
            <RowStyle BackColor="#EEEEEE" ForeColor="Black" />
            <Columns>


                    <asp:CheckBoxField headertext="mm" />

谢谢,


Steve

尝试根据数据源对象上的布尔条件设置
数据字段
属性。看起来您正在绑定到ObjectDataSource。类上可能有一个布尔条件——假设它是
IsHired

也许是这样的:

     <asp:CheckBoxField headertext="mm" DataField="IsHired" />

尝试根据数据源对象上的布尔条件设置
数据字段
属性。看起来您正在绑定到ObjectDataSource。类上可能有一个布尔条件——假设它是
IsHired

也许是这样的:

     <asp:CheckBoxField headertext="mm" DataField="IsHired" />

出于某种原因,Microsoft在ASP.NET中的复选框规范中省略了“Value”属性,尽管它是一个。我的猜测是,他们希望它尽可能类似于WinForms复选框(它也缺少“Value”属性)

如果您想给出您的


这两种方法之间的主要区别在于前者不会在生成的HTML(仅ViewState)中包含值,而后者则会。

出于某种原因,Microsoft在ASP.NET中的复选框规范中省略了“Value”属性,尽管它是一个。我的猜测是,他们希望它尽可能类似于WinForms复选框(它也缺少“Value”属性)

如果您想给出您的


这两种方法之间的主要区别是前者将在生成的HTML中包含值(仅ViewState),而后者将。

添加到Nathan的答案中:我将使用RowDataBound事件来创建GridView。假设您绑定到一个DataTable,感兴趣的列为[0]

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    //Check for a data row
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        //Find the checkbox control by ID and set it.
        ((CheckBox)e.Row.FindControl("CheckBoxId")).Checked = IsItemChecked(((DataRowView)e.Row.DataItem)[0]);
    } 
}

IsItemChecked函数可以从DataItem传递数据,以创建返回布尔值的自定义逻辑。拥有控件后,还可以向其添加属性。这是一个强大的技术,一旦你掌握它

再加上Nathan的回答:我会将RowDataBound事件用于GridView。假设您绑定到一个DataTable,感兴趣的列为[0]

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    //Check for a data row
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        //Find the checkbox control by ID and set it.
        ((CheckBox)e.Row.FindControl("CheckBoxId")).Checked = IsItemChecked(((DataRowView)e.Row.DataItem)[0]);
    } 
}

IsItemChecked函数可以从DataItem传递数据,以创建返回布尔值的自定义逻辑。拥有控件后,还可以向其添加属性。这是一个强大的技术,一旦你掌握它

对不起,我忘了提到我的数据源中没有布尔标志。谢谢你的快速帮助。@Steve:那你在找什么?你的问题中不清楚你有什么工作/任务,或者你想要的输出是什么。我需要传递数据源中的ID字段,但复选框只允许我使用布尔值。在经典ASP中,我可以传递我想要的任何值。对不起,我忘了提到我的数据源中没有布尔标志。谢谢你的快速帮助。@Steve:那你在找什么?你的问题中不清楚你有什么工作/任务,或者你想要的输出是什么。我需要传递数据源中的ID字段,但复选框只允许我使用布尔值。在经典的ASP中,我可以传递我想要的任何值。非常感谢,我将尝试一下。现在我必须弄清楚如何在每一行中使用数据源中的数据字段填充值。这不是一个完美的解决方案,但我使用了tooltip属性。它比Attributes或InputAttributes.lol更容易访问。哇!每天webforms都会发现让我惊讶和厌恶的新方法。非常感谢,我会尝试一下。现在我必须弄清楚如何在每一行中使用数据源中的数据字段填充值。这不是一个完美的解决方案,但我使用了tooltip属性。它比Attributes或InputAttributes.lol更容易访问。哇!每天webforms都会发现新的方式让我感到惊讶和厌恶。这看起来很有希望,但我得到了一个错误:“IsItemChecked”这个名字在当前上下文中不存在。嘿,Steve,很抱歉我的回复延迟了。您需要创建IsItemChecked方法。在它里面,你会把逻辑放在返回一个指示复选框状态的布尔值上。这看起来很有希望,但我得到了这个错误:名称“IsItemChecked”在当前上下文中不存在。嘿,Steve,很抱歉我的响应延迟了。您需要创建IsItemChecked方法。在它里面,您将放置逻辑以返回指示复选框状态的布尔值。