GridView中的CheckBox如何绑定数据?

GridView中的CheckBox如何绑定数据?,第1张

一楼的做法也可以实现,但是麻烦了点

直接用绑定可以实现,并不复杂,但也没有二楼说得那么简单

对于sqlserver数据库,通常用1来表示真,0表示假

GridView中有一列为CheckBox,添加了CheckBox后,编辑模板列,编辑DataBindings选择checked那一项,然后填上Convert.ToBoolean(Eval("bool"))

这样就实现了1为选中状态,0为未选中状态

<asp:GridView ID="GridView1" runat="server">

<Columns>

<asp:TemplateField>

<ItemTemplate>

<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Convert.ToBoolean(Eval("bool")) %>' />

</ItemTemplate>

</asp:TemplateField>

</Columns>

</asp:GridView>

protected void Page_Load(object sender, EventArgs e)

{

DataTable dt = new DataTable()

dt.Columns.Add("bool", typeof(int))

DataRow dr0 = dt.NewRow()

dr0["bool"] = 1

dt.Rows.Add(dr0)

DataRow dr1 = dt.NewRow()

dr1["bool"] = 0

dt.Rows.Add(dr1)

DataRow dr2 = dt.NewRow()

dr2["bool"] = 1

dt.Rows.Add(dr2)

GridView1.DataSource = dt.DefaultView

GridView1.DataBind()

}

老实说我也第一次遇到这个问题,现帮你解决了,试验已通过,共同进步,呵呵!

简单例子,你在aspx页面上放上这个

你喜欢的食物<br/>

<input type="checkbox" name="chbFood" value="apple" />苹果<br/>

<input type="checkbox" name="chbFood" value="orange" />橘子<br/>

<input type="checkbox" name="chbFood" value="banana" />香蕉<br/>

<input type="checkbox" name="chbFood" value="bread" />面包<br/>

<asp:Button runat="server" Text="提交" ID="btnSubmit"/>

在接收数据的页面的cs文件的Page_Lode里面放上这个

object obj=Request.Form["chbFood"]

if (obj != null)

{

string strFood = (string)obj

Response.Write(strFood)

}

当你做了选择,点击提交,就会在页面上输出你选中的项的value。

一般使用复选框都是为了批量 *** 作,,例如批量删除,在批量删除的时候,复选框绑定的是你这条数据的ID (也就是这条数据在数据库开面的ID)然后在对其进行 *** 作,给你段我我批量删除数据的代码吧:

function che() {

var checks = window.document.getElementById("cheks")

if (checks.checked == true) {

chAll()

}

else

RemoveAll()

}

function chAll() {

var selobj = document.getElementsByName("chek")

for (var i = 0i <selobj.lengthi++) {

selobj[i].checked = true

}

}

function RemoveAll() {

var selobj = document.getElementsByName("chek")

for (var i = 0i <selobj.lengthi++) {

selobj[i].checked = false

}

}

function delectAll(id) {

var items = ""

var selobj = document.getElementsByName("chek")

for (var i = 0i <selobj.lengthi++) {

if (selobj[i].checked == true) {

items = items + selobj[i].value + ","

}

}

debugger

if (items.length <= 0) {

alert("请选择要退寝的人员!!!")

return false

}

else {

if (id == "Batch") {

if (confirm("确定退寝吗?")) {

document.getElementById("iditems").value = items

return true

}

}

return false

}

}

这个是我的js

前台页面:

<asp:LinkButton ID="Batch" runat="server" Font-Underline="false"

OnClientClick='return delectAll(this.id)' CssClass="style" Font-Size="13px"

onclick="Batch_Click">批量退寝</asp:LinkButton>

<asp:HiddenField ID="iditems" runat="server" />//这是一个隐藏域:目的是存储所有选定的值

我用的是gridview控件

<asp:GridView ID="GridRoomOut" runat="server" AutoGenerateColumns="False" Width="100%"

AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="28"

Font-Size="13px" CellPadding="4" ForeColor="#333333" GridLines="None">

<AlternatingRowStyle BackColor="White" ForeColor="#284775" />

<Columns>

<asp:TemplateField >

<HeaderTemplate>

//这个是为了实现 全选 和反选的

<input name="cheks" id="cheks" type="checkbox" onclick="che()" />

</HeaderTemplate>

<ItemTemplate>

//这个是绑定数据的ID的

<input name="chek" id="chek" type="checkbox" value='<%#(Convert.ToString( Eval("ID"))) %>' />

</ItemTemplate>

</asp:TemplateField>

在后台:

后台删除:

protected void Batch_Click(object sender, EventArgs e)

{

//接受前台隐藏域的值 也就是说前台选中chekbox所绑定的ID值

string idtems = Request.Form["iditems"].ToString().TrimEnd(',')

string time = DateTime.Now.Date.ToShortDateString()

string[] ids = null

if(idtems!="")

{

ids = idtems.Split(',')

}

for (int i = 0i <ids.Lengthi++)

{

int id = int.Parse(ids[i].ToString())

if (dal.RoomOutUpdate(id,time) >0)

{

continue

}

}

ClientScript.RegisterStartupScript(GetType(), "", "alert('退寝成功!')window.location.href = window.location.href", true)

}

不明白的 你可以继续问我 希望能帮到你


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9967212.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存