如果有人能给我一段代码直接运行成功最好。
我已经精疲力竭了,马上就是我的连续第56个小时没睡觉了,我不相信我就弄不出来。
帮忙。。。。吧,不要看到我倒下。。。
代码如下:
aspx:
<asp:datagrid id="DataGrid1" runat="server" DataKeyField="n_id" AutoGenerateColumns="False" Height="120px" Width="575px">
<Columns> <asp:TemplateColumn HeaderText="求职信息:"> <ItemTemplate>
<input id="sel" name="sel" type="checkbox" runat="server" value=<%#Eval("n_id")%>/>
<a href='edit.aspx?id=<%#Eval("n_id")%>' target=_blank>编辑</a>·<a href='view.aspx?id=<%#Eval("n_id")%>' target=_blank><%#Eval("n_title")%></a>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
后台cs:
protected void Page_Load(object sender, System.EventArgs e)
{
ds = Socut.Data.ExecuteDataSet("SELECT * FROM socut_news", "TableName");
DataGrid1.DataSource = ds;//设置数据源
DataGrid1.DataBind();//绑定数据
}
protected void Button1_OnClick(object sender, EventArgs e)
{
for (int i = 0; i < DataGrid1.Items.Count; i++)
{
HtmlInputCheckBox mychk = (HtmlInputCheckBox)DataGrid1.Items[i].FindControl("sel");
if (mychk.Checked == true)
{
string myid = Request["sel"];
Socut.Data.ExecuteDataSet("DELETE FROM socut_news WHERE n_id='" + myid + "'");
}
}
}
现在情况就是一直按按钮没有反应,我之前设置过label测试,request的取值其实是没有问题的,
问题应该是在查找sel值的地方,可能一直没找到。
不然应该不会按按钮没反应。
大侠们帮帮忙。我忙活了好几天了,弄死人。就这么个小问题,我不知道我到底是哪里错了。
谢谢
44 个解决方案
#1
n_id='" + myid + "'");
id如果是int不需要加'',否则会错的
id如果是int不需要加'',否则会错的
#2
try:
foreach (GridViewRow row in DataGrid1.Rows)
{
CheckBox flag = row.Cells[x].FindControl("sel") as CheckBox;
if (flag != null && flag.Checked)
{
.....
}
x 是你checkbox 在地几个cell里(0 based)
________________________________________________
mintsilk
mintsilk@ziplecture.com
Ziplecture.com -- free online training
foreach (GridViewRow row in DataGrid1.Rows)
{
CheckBox flag = row.Cells[x].FindControl("sel") as CheckBox;
if (flag != null && flag.Checked)
{
.....
}
x 是你checkbox 在地几个cell里(0 based)
________________________________________________
mintsilk
mintsilk@ziplecture.com
Ziplecture.com -- free online training
#3
打个断点跟踪下吧 看看控件有没取到额!
#4
用datalist,id为list_id
在ItemTemplate添加一个隐藏的html控件input,<input type="hidden" id="SelectedID" runat="server" value='<%#Eval("n_id")%>' />,再添加一个服务器控件<asp:checkbox id="X_Z" runat="server" />
再在datalist外添加一个button服务器控件,在cs后台添加该button事件:
string dgIDs = "";
bool BxsChkd = false;
foreach (DataListItem y in list_id.Items)
{
if (((CheckBox)y.FindControl("X_Z")).Checked)
{
BxsChkd = true;
dgIDs += ((HtmlInputHidden)y.FindControl("SelectedID")).Value.ToString() + ",";
}
if (dgIDs.Length.ToString() != "0")
{
//执行删除操作
//注意:在写sql删除语言时,("delete from 数据表 where n_id in (" + dgIDs.Substring(0, dgIDs.LastIndexOf(",")) + ")")
}
else
{
//弹出没有选择项的对话框
}
}
在ItemTemplate添加一个隐藏的html控件input,<input type="hidden" id="SelectedID" runat="server" value='<%#Eval("n_id")%>' />,再添加一个服务器控件<asp:checkbox id="X_Z" runat="server" />
再在datalist外添加一个button服务器控件,在cs后台添加该button事件:
string dgIDs = "";
bool BxsChkd = false;
foreach (DataListItem y in list_id.Items)
{
if (((CheckBox)y.FindControl("X_Z")).Checked)
{
BxsChkd = true;
dgIDs += ((HtmlInputHidden)y.FindControl("SelectedID")).Value.ToString() + ",";
}
if (dgIDs.Length.ToString() != "0")
{
//执行删除操作
//注意:在写sql删除语言时,("delete from 数据表 where n_id in (" + dgIDs.Substring(0, dgIDs.LastIndexOf(",")) + ")")
}
else
{
//弹出没有选择项的对话框
}
}
#5
==这个是代码页:
protected void chkAll_CheckedChanged(object sender, EventArgs e)
{ //全选
//sender为事件源,它是CheckBox所以可以强制转成CheckBox.
CheckBox cball=(CheckBox)sender;//cball就为全选CheckBox
if (cball.Checked == true)
{//全选CheckBox被选中,用foreach遍历GridView中的所有行
foreach (GridViewRow gvr in this.GridView1.Rows)
{//gvr对象每循环一次代表一行,从第0行开始.
//Cells[8]表示第8个单元格.
//在GridView中的所有行的第8个单元格中用FindControl()方法通过控件的ID查找控件,找到控件后强制转换成它原来的类型。
CheckBox cbone=(CheckBox)gvr.Cells[8].FindControl("chkOne");
cbone.Checked = true;
}
}
else
{//全选没被选中
foreach (GridViewRow gvr in this.GridView1.Rows)
{
CheckBox cbone = (CheckBox)gvr.Cells[8].FindControl("chkOne");
cbone.Checked = false;
}
}
}
protected void Button3_Click(object sender, EventArgs e)
{//删除被选中的项:
foreach (GridViewRow gvr in this.GridView1.Rows)
{
CheckBox cbone = (CheckBox)gvr.Cells[8].FindControl("chkOne");
if (cbone.Checked) //如果当前行的CheckBox被选中
{//删除
//要删除必定会有一删除的条件
string id = gvr.Cells[1].Text;
SqlConnection conn = new SqlConnection("server=.;database=northwind;uid=sa;pwd=;");
string sqlStr = "delete employees where employeeid=@id";
SqlCommand cmd = new SqlCommand(sqlStr,conn);
cmd.Parameters.Add("@id",SqlDbType.Int,4);
cmd.Parameters["@id"].Value = id;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
//重新绑定
this.DataBind();
}
}
Html页
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" BackColor="White" BorderColor="#CC9966" BorderStyle="None"
BorderWidth="1px" CellPadding="4" DataSourceID="SqlDataSource1" OnRowCreated="GridView1_RowCreated">
<FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
<RowStyle BackColor="White" ForeColor="#330099" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
<PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowSelectButton="True" />
<asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" InsertVisible="False"
ReadOnly="True" SortExpression="EmployeeID" />
<asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
<asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
<asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
<asp:BoundField DataField="HireDate" DataFormatString="{0:d}" HeaderText="HireDate"
HtmlEncode="False" SortExpression="HireDate" />
<asp:ImageField DataImageUrlField="LastName" DataImageUrlFormatString="images/{0}"
HeaderText="权限">
</asp:ImageField>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkAll" runat="server" AutoPostBack="True" Font-Bold="True" Font-Size="9pt"
ForeColor="White" OnCheckedChanged="chkAll_CheckedChanged" Text="全选" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkOne" runat="server" Text="选择" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
protected void chkAll_CheckedChanged(object sender, EventArgs e)
{ //全选
//sender为事件源,它是CheckBox所以可以强制转成CheckBox.
CheckBox cball=(CheckBox)sender;//cball就为全选CheckBox
if (cball.Checked == true)
{//全选CheckBox被选中,用foreach遍历GridView中的所有行
foreach (GridViewRow gvr in this.GridView1.Rows)
{//gvr对象每循环一次代表一行,从第0行开始.
//Cells[8]表示第8个单元格.
//在GridView中的所有行的第8个单元格中用FindControl()方法通过控件的ID查找控件,找到控件后强制转换成它原来的类型。
CheckBox cbone=(CheckBox)gvr.Cells[8].FindControl("chkOne");
cbone.Checked = true;
}
}
else
{//全选没被选中
foreach (GridViewRow gvr in this.GridView1.Rows)
{
CheckBox cbone = (CheckBox)gvr.Cells[8].FindControl("chkOne");
cbone.Checked = false;
}
}
}
protected void Button3_Click(object sender, EventArgs e)
{//删除被选中的项:
foreach (GridViewRow gvr in this.GridView1.Rows)
{
CheckBox cbone = (CheckBox)gvr.Cells[8].FindControl("chkOne");
if (cbone.Checked) //如果当前行的CheckBox被选中
{//删除
//要删除必定会有一删除的条件
string id = gvr.Cells[1].Text;
SqlConnection conn = new SqlConnection("server=.;database=northwind;uid=sa;pwd=;");
string sqlStr = "delete employees where employeeid=@id";
SqlCommand cmd = new SqlCommand(sqlStr,conn);
cmd.Parameters.Add("@id",SqlDbType.Int,4);
cmd.Parameters["@id"].Value = id;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
//重新绑定
this.DataBind();
}
}
Html页
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" BackColor="White" BorderColor="#CC9966" BorderStyle="None"
BorderWidth="1px" CellPadding="4" DataSourceID="SqlDataSource1" OnRowCreated="GridView1_RowCreated">
<FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
<RowStyle BackColor="White" ForeColor="#330099" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
<PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowSelectButton="True" />
<asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" InsertVisible="False"
ReadOnly="True" SortExpression="EmployeeID" />
<asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
<asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
<asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
<asp:BoundField DataField="HireDate" DataFormatString="{0:d}" HeaderText="HireDate"
HtmlEncode="False" SortExpression="HireDate" />
<asp:ImageField DataImageUrlField="LastName" DataImageUrlFormatString="images/{0}"
HeaderText="权限">
</asp:ImageField>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkAll" runat="server" AutoPostBack="True" Font-Bold="True" Font-Size="9pt"
ForeColor="White" OnCheckedChanged="chkAll_CheckedChanged" Text="全选" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkOne" runat="server" Text="选择" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
#6
我的这个是在05里面实现的简单的很
#7
精神可佳, 顶一个
Request.Form[Name]
Request.Form[Name]
#8
可怜的楼主,你为什么忘记page_load里增加if(!ispostpack)
protected void Page_Load(object sender, System.EventArgs e)
{
if(!ispostpack) //为什么忘记加他
ds = Socut.Data.ExecuteDataSet("SELECT * FROM socut_news", "TableName");
DataGrid1.DataSource = ds;//设置数据源
DataGrid1.DataBind();//绑定数据
}
protected void Page_Load(object sender, System.EventArgs e)
{
if(!ispostpack) //为什么忘记加他
ds = Socut.Data.ExecuteDataSet("SELECT * FROM socut_news", "TableName");
DataGrid1.DataSource = ds;//设置数据源
DataGrid1.DataBind();//绑定数据
}
#9
可爱的楼主,要学会调试啊!
解决方案,如楼上所述!
为什么呢,请看如下:
每次你刷新一次页面首先它不是与postback机理相同,他是与你在刷新前一个页面的操作是一致的,比如,你是第一次载入页面的话,如果刷新页面那么在!ispostback中的程序在刷新会在执行一遍.如果你是在第二次或更多刷新页面,那么刷新页面后执行的就不会是!Ispostback,而是ispostback中的程序,并且会执行在上次页面刷新你进行的操作。
其实.NET页面加载时先调用Init事件,初始化页面,然后再触发LOAD事件,而Page_Load只是一个方法,在LOAD事件触发时调用了这个方法.
至于控件,在页面加载时也是先调用Init事件,并调用Init(方法)进行初始化,然后再触发LOAD事件加载.
解决方案,如楼上所述!
为什么呢,请看如下:
每次你刷新一次页面首先它不是与postback机理相同,他是与你在刷新前一个页面的操作是一致的,比如,你是第一次载入页面的话,如果刷新页面那么在!ispostback中的程序在刷新会在执行一遍.如果你是在第二次或更多刷新页面,那么刷新页面后执行的就不会是!Ispostback,而是ispostback中的程序,并且会执行在上次页面刷新你进行的操作。
其实.NET页面加载时先调用Init事件,初始化页面,然后再触发LOAD事件,而Page_Load只是一个方法,在LOAD事件触发时调用了这个方法.
至于控件,在页面加载时也是先调用Init事件,并调用Init(方法)进行初始化,然后再触发LOAD事件加载.
#10
是string的
#11
我现在只能用datagrid。。不能改datalist
否则没办法弄下去。
#12
哦???难道我????
试试先。
#13
function SelectAll(frm)
{
for (var i=0;i<frm.elements.length;i++)
frm.elements[i].checked = frm.selectall.checked;
}
function CheckSelect(frm)
{
var col=frm.elements;
var obj=frm.selectall;
var intEls=0,intChks=0;
for(var i=0;i<col.length;i++)
{
if(col[i].type=="checkbox"&&col[i].name!="selectall")
{
intEls++;
if(col[i].checked)
intChks++;
}
}
obj.checked=(intEls==intChks);
}
<asp:datagrid id="DataGrid1" runat="server" Width="100%" AllowPaging="True" PageSize="15" AutoGenerateColumns="False">
<SelectedItemStyle CssClass="SelectedItemback"></SelectedItemStyle>
<AlternatingItemStyle CssClass="Alternatingback"></AlternatingItemStyle>
<ItemStyle CssClass="griditem"></ItemStyle>
<HeaderStyle CssClass="gridheader"></HeaderStyle>
<Columns>
<asp:BoundColumn Visible="False" DataField="ZT" HeaderText="状态"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="<input type=checkbox name='selectall' onClick='SelectAll(document.Form1)'>全选">
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" Width="8%"></HeaderStyle>
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Visible="False"></PagerStyle>
</asp:datagrid>
private void But_Del_Click(object sender, System.EventArgs e)
{
string XTBH="",BH="";
foreach(DataGridItem item in DataGrid1.Items)
{
if(((CheckBox)item.FindControl("CheckBox1")).Checked)
{
XTBH+=item.Cells[2].Text.ToString().Trim()+",";
}
}
if(XTBH.Length==0)
{
this.Response.Write("<script language='javascript'>alert('请选择要操作的数据')</script>");
return;
}
XTBH=XTBH.Substring(0,XTBH.Length-1);
BH="in ("+XTBH+")";
Socut.Data.ExecuteDataSet("DELETE FROM socut_news WHERE n_id in '" + BH+ "'");
//删除数据
// 绑定数据
}
{
for (var i=0;i<frm.elements.length;i++)
frm.elements[i].checked = frm.selectall.checked;
}
function CheckSelect(frm)
{
var col=frm.elements;
var obj=frm.selectall;
var intEls=0,intChks=0;
for(var i=0;i<col.length;i++)
{
if(col[i].type=="checkbox"&&col[i].name!="selectall")
{
intEls++;
if(col[i].checked)
intChks++;
}
}
obj.checked=(intEls==intChks);
}
<asp:datagrid id="DataGrid1" runat="server" Width="100%" AllowPaging="True" PageSize="15" AutoGenerateColumns="False">
<SelectedItemStyle CssClass="SelectedItemback"></SelectedItemStyle>
<AlternatingItemStyle CssClass="Alternatingback"></AlternatingItemStyle>
<ItemStyle CssClass="griditem"></ItemStyle>
<HeaderStyle CssClass="gridheader"></HeaderStyle>
<Columns>
<asp:BoundColumn Visible="False" DataField="ZT" HeaderText="状态"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="<input type=checkbox name='selectall' onClick='SelectAll(document.Form1)'>全选">
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" Width="8%"></HeaderStyle>
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Visible="False"></PagerStyle>
</asp:datagrid>
private void But_Del_Click(object sender, System.EventArgs e)
{
string XTBH="",BH="";
foreach(DataGridItem item in DataGrid1.Items)
{
if(((CheckBox)item.FindControl("CheckBox1")).Checked)
{
XTBH+=item.Cells[2].Text.ToString().Trim()+",";
}
}
if(XTBH.Length==0)
{
this.Response.Write("<script language='javascript'>alert('请选择要操作的数据')</script>");
return;
}
XTBH=XTBH.Substring(0,XTBH.Length-1);
BH="in ("+XTBH+")";
Socut.Data.ExecuteDataSet("DELETE FROM socut_news WHERE n_id in '" + BH+ "'");
//删除数据
// 绑定数据
}
#14
回八楼。。没用哦
加了还是按钮没反应。
我觉得还是取值的问题。取不到。
加了还是按钮没反应。
我觉得还是取值的问题。取不到。
#15
帮顶
#18
谢谢楼上的
但是我看了半天,看不出有什么联系?
谁能明确指出我的代码里面的问题吗?
我觉得我这样比较写的简洁了,不想再复杂化。
但是我看了半天,看不出有什么联系?
谁能明确指出我的代码里面的问题吗?
我觉得我这样比较写的简洁了,不想再复杂化。
#19
楼主注意身体哈,先顶
#20
应该是个很简单的问题,建议楼主将整个页面的代码(cs,xhtml)都帖出来,让大家给你测试一下,相信很快就ok
#21
要加上 if(!ispostback) ,如果取不到.可以设置断点高度下
__________
QQ:3761290
__________
QQ:3761290
#22
protected void Button1_OnClick(object sender, EventArgs e)
{
for (int i = 0; i < DataGrid1.Items.Count; i++)
{
HtmlInputCheckBox mychk = (HtmlInputCheckBox)DataGrid1.Items[i].FindControl("sel");
if (mychk.Checked == true)
{
string myid = mychk.value; //修改了
Socut.Data.ExecuteDataSet("DELETE FROM socut_news WHERE n_id='" + myid + "'");
}
}
}
{
for (int i = 0; i < DataGrid1.Items.Count; i++)
{
HtmlInputCheckBox mychk = (HtmlInputCheckBox)DataGrid1.Items[i].FindControl("sel");
if (mychk.Checked == true)
{
string myid = mychk.value; //修改了
Socut.Data.ExecuteDataSet("DELETE FROM socut_news WHERE n_id='" + myid + "'");
}
}
}
#23
在Access数据库里主键不需要加“,但在SQL里可以加,也可以不加。
#24
好的,我都贴,我自己也是弄的测试页面。
环境:xp professional sp3。vs2005。.net2.0.iis5.1。sql2000
<%@ Page language="c#" Inherits="Show_Socut_Data.News.Manage" CodeFile="Manage.aspx.cs" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Manage</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script language="javascript">
function checkAll()
{
var frm=document.Form1 ;
for(var i=0;i<frm.elements.length;i++)
{
var e=frm.elements[i];
if(e.name!="allbox" && e.type=="checkbox") //仅对datagrid <itemTemplate>中的checkbox执行操作
{
var eName= e.name.split(':');
if(eName[0]=="DataGrid1")
{
e.checked=frm.allbox.checked;
}
}
}
}
</script>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<table cellSpacing="1" cellPadding="5" width="780" align="center" bgColor="#cccccc" border="0">
<tr>
<td align="center" width="788" bgColor="#ffffff" height="150">网站顶部</td>
</tr>
</table>
<table cellSpacing="1" cellPadding="5" width="780" align="center" bgColor="#cccccc" border="0">
<tr bgColor="#ffffff">
<td width="180" height="200">用户登陆</td>
<td vAlign="top" rowSpan="2">
<asp:datagrid id="DataGrid1" runat="server" DataKeyField="n_id" AutoGenerateColumns="False" Height="120px" Width="575px">
<Columns>
<asp:TemplateColumn HeaderText="求职信息:">
<ItemTemplate>
<input id="sel" name="sel" type="checkbox" runat="server" value=<%#Eval("n_id")%>/>
<a href='edit.aspx?id=<%#Eval("n_id")%>' target=_blank>
编辑</a>·<a href='view.aspx?id=<%#Eval("n_id")%>' target=_blank><%#Eval("n_title")%></a>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
<input type="checkbox" name="allbox" onclick="javascript:checkAll();">
<asp:Button ID="Button1" runat="server" OnClick="Button1_OnClick" Text="Delete Selected"
Width="174px" /></td>
</tr>
<tr bgColor="#ffffff">
<td height="200">文章统计</td>
</tr>
</table>
<table cellSpacing="1" cellPadding="5" width="780" align="center" bgColor="#cccccc" border="0">
<tr>
<td align="center" width="788" bgColor="#ffffff" height="150">
网站底部</td>
</tr>
</table>
</form>
</body>
</HTML>
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Show_Socut_Data.News
{
/// <summary>
/// Manage 的摘要说明。
/// </summary>
public partial class Manage : System.Web.UI.Page
{
public DataSet ds = new DataSet();//将DataSet实例化
protected void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
ds = Socut.Data.ExecuteDataSet("SELECT * FROM socut_news", "TableName");
DataGrid1.DataSource = ds;//设置数据源
DataGrid1.DataBind();//绑定数据
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
}
#endregion
protected void Button1_OnClick(object sender, EventArgs e)
{
int mycount = DataGrid1.Items.Count;
for (int i = 0; i < mycount; i++)
{
HtmlInputCheckBox mychk = (HtmlInputCheckBox)DataGrid1.Items[i].FindControl("sel");
if (mychk.Checked == true)
{
string myid = Request["sel"];
Socut.Data.ExecuteDataSet("DELETE FROM socut_news WHERE n_id='" + myid + "'");
}
}
}
}
}
#25
我用了一个数据库组件
socut.data.dll3.1
socut.data.dll3.1
#26
测试了没有用。
mychk是定义的Htmlinputcheckbox的值,只有true或者false。不可能行得通
即使换成了sel.value也不行。
报错提示:上下文没有sel的定义
#27
因为input不是服务器控件,回调过后他的状态是不会得以保存的,你可以把它换成asp:CheckBox或者在input中
加上enableviewstate:
<input id="sel" enableviewstate="true" name="sel" type="checkbox" runat="server" value='<%#Eval("n_id")%>' />
加上enableviewstate:
<input id="sel" enableviewstate="true" name="sel" type="checkbox" runat="server" value='<%#Eval("n_id")%>' />
#28
另外,你既然已经使它runat="server"了,就不能再用Request["sel"]来获取它的Value了,直接用
string myid = mychk.Value;即可
string myid = mychk.Value;即可
#29
……LZ的上一个帖子里我回复了,当时在网吧,手打代码,mychk.value,如果LZ是直接复制的话实在是抱歉了……
#30
您的意思是??v不要大写还是???
另外mychk没有value属性。
应该是sel吧?
对不对?
#31
HtmlInputCheckBox 类型怎么可能没有Value属性
![关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看 关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OW1iM0oxYlM1amMyUnVMbTVsZEM5UWIybHVkRVp2Y25WdEwzVnBMM05qY21sd2RITXZZM05rYmk5UWJIVm5hVzR2TURBeEwyWmhZMlV2TkRBdVoybG0%3D.jpg?w=700&webp=1)
#32
坚持住!我有过你类似的经历,最后一定可以搞定!
#33
PS:
我的目标是 ---->
![关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看 关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwyRmpkQzVoYVc5dUxuTmtieTVqYjIwdlVISnZhbVZqZEM5QlkzUkJjbVZoTDNSMWFXcHBZVzR2ZEhWcGFtbGhiaTVoYzNBX2RXbGtQVGN6T0RJMVhWc3ZhVzFuWFZ0cGJXYzlhSFIwY0RvdkwyRmpkQzVoYVc5dUxuTmtieTVqYjIwdlVISnZhbVZqZEM5QlkzUkJjbVZoTDNSMWFXcHBZVzR2ZEhWcGFtbGhiaTVoYzNBX2RXbGtQVGcwTXpjelhWc3ZhVzFuWFZ0cGJXYzlhSFIwY0RvdkwyRmpkQzVoYVc5dUxuTmtieTVqYjIwdlVISnZhbVZqZEM5QlkzUkJjbVZoTDNSMWFXcHBZVzR2ZEhWcGFtbGhiaTVoYzNBX2RXbGtQVGcwTkRFMlhWc3ZhVzFuWFZ0cGJXYzlhSFIwY0RvdkwyRmpkQzVoYVc5dUxuTmtieTVqYjIwdlVISnZhbVZqZEM5QlkzUkJjbVZoTDNSMWFXcHBZVzR2ZEhWcGFtbGhiaTVoYzNBX2RXbGtQVGcwTkRjMVhWc3ZhVzFuWFZ0cGJXYzlhSFIwY0RvdkwyMWxaR0ZzTG1OelpHNHVibVYwTDNWcEwzTjBlV3hsY3k5cGJXRm5aWE12Y21Wa1h6RXVaMmxt.jpg?w=700&webp=1)
![关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看 关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwyMWxaR0ZzTG1OelpHNHVibVYwTDNWcEwzTjBlV3hsY3k5cGJXRm5aWE12Y21Wa1h6SXVaMmxt.jpg?w=700&webp=1)
![关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看 关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwyMWxaR0ZzTG1OelpHNHVibVYwTDNWcEwzTjBlV3hsY3k5cGJXRm5aWE12Y21Wa1h6TXVaMmxt.jpg?w=700&webp=1)
![关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看 关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwyRmpkQzVoYVc5dUxuTmtieTVqYjIwdlVISnZhbVZqZEM5QlkzUkJjbVZoTDNSMWFXcHBZVzR2ZEhWcGFtbGhiaTVoYzNBX2RXbGtQVGcwTlRFNVhWc3ZhVzFuWFZ0cGJXYzlhSFIwY0RvdkwyRmpkQzVoYVc5dUxuTmtieTVqYjIwdlVISnZhbVZqZEM5QlkzUkJjbVZoTDNSMWFXcHBZVzR2ZEhWcGFtbGhiaTVoYzNBX2RXbGtQVGcwTlRZNVhWc3ZhVzFuWFZ0cGJXYzlhSFIwY0RvdkwyRmpkQzVoYVc5dUxuTmtieTVqYjIwdlVISnZhbVZqZEM5QlkzUkJjbVZoTDNSMWFXcHBZVzR2ZEhWcGFtbGhiaTVoYzNBX2RXbGtQVGcwTmpBd1hWc3ZhVzFuWFZ0cGJXYzlhSFIwY0RvdkwyMWxaR0ZzTG1OelpHNHVibVYwTDNWcEwzTjBlV3hsY3k5cGJXRm5aWE12ZVdWc2JHOTNYekV1WjJsbQ%3D%3D.jpg?w=700&webp=1)
![关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看 关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwyMWxaR0ZzTG1OelpHNHVibVYwTDNWcEwzTjBlV3hsY3k5cGJXRm5aWE12ZVdWc2JHOTNYekl1WjJsbQ%3D%3D.jpg?w=700&webp=1)
![关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看 关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwyMWxaR0ZzTG1OelpHNHVibVYwTDNWcEwzTjBlV3hsY3k5cGJXRm5aWE12ZVdWc2JHOTNYek11WjJsbQ%3D%3D.jpg?w=700&webp=1)
^_^
#34
这里是删除按钮代码:
System.Web.UI.WebControls.CheckBox chk;
int all = this.DLJobList.Items.Count;
for (int i = 0; i < all; i++)
{
chk = (CheckBox)(this.DLJobList.Items[i].FindControl("chkExport"));
if (chk.Checked == true)
{
j++;
}
}
if (j == 0)
{
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "a", "alert('请选择要操作的项!');", true);
return;
}
else
{
try
{
for (int i = 0; i < all; i++)
{
chk = (CheckBox)(this.DLJobList.Items[i].FindControl("chkExport"));
if (chk.Checked == true)
{
int JobID = Convert.ToInt32(this.DLJobList.DataKeys[this.DLJobList.Items[i].ItemIndex]);
myjob.DelQq_Job(JobID);
}
}
LoadJobList(ViewState["strsql"].ToString());
}
catch (Exception ex)
{
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "a", "alert('操作失败!数据库维护中!');", true);
return;
}
}
以上功能可以用的,我一直在这样用的
#35
但是strID提取的是我的u_id。
mychk是个bool型,只是中间用来测试的吧
我提取他的值有什么用呢
#36
貌似太复杂了,我也测试了,不大有作用,很多小地方出错。
我这里就想大家帮忙找下我代码的错误。。
#37
首先楼主设断点看看你后台的代码取值是多少,取没取到值
楼主这里定义了 <input id="sel" name="sel" type="checkbox" runat="server" value=<%#Eval("n_id")%>/>
31楼你说取mychk.Value 是true 或false 真是这样的话 value=<%#Eval("n_id")%>就没意义了
这样的话你试试在它后面加个hidden
<INPUT id="txtN_id" type="hidden" value=<%#Eval("n_id")%> name="Hidden1" runat="server">
然后在后台代码取txtN_id 的value
楼主这里定义了 <input id="sel" name="sel" type="checkbox" runat="server" value=<%#Eval("n_id")%>/>
31楼你说取mychk.Value 是true 或false 真是这样的话 value=<%#Eval("n_id")%>就没意义了
这样的话你试试在它后面加个hidden
<INPUT id="txtN_id" type="hidden" value=<%#Eval("n_id")%> name="Hidden1" runat="server">
然后在后台代码取txtN_id 的value
#38
简单说一下思路:
取值操作可以交给客户端js来处理,再将所有选中checkbox的值用一个分割符拼接起来 如: 1,2,3 再把这个串交给带runat=server 的隐藏域,后台在触发"批量删除"按钮操作时,直接取该隐藏域的值就可以了
取值操作可以交给客户端js来处理,再将所有选中checkbox的值用一个分割符拼接起来 如: 1,2,3 再把这个串交给带runat=server 的隐藏域,后台在触发"批量删除"按钮操作时,直接取该隐藏域的值就可以了
#39
for (int i = 0; i < mycount; i++)
{
//HtmlInputCheckBox mychk = (HtmlInputCheckBox)DataGrid1.Items[i].FindControl("Checkbox1");
HtmlInputCheckBox mychk = (HtmlInputCheckBox)GridView1.Rows[i].FindControl("Checkbox1");
if (mychk.Checked == true)
{
string myid = mychk.Value;
//Socut.Data.ExecuteDataSet("DELETE FROM socut_news WHERE n_id='" + myid + "'");
Response.Write(myid);
}
}
可以^0^
#40
strID是什么?哪来的?你24楼的代码哪有这东西?
你24楼代码这么定义
HtmlInputCheckBox mychk = (HtmlInputCheckBox)DataGrid1.Items[i].FindControl("sel");
那么mychk又怎么会是bool型?
你的思维很混乱
#41
谢谢楼上所有朋友。
可能这几天没休息好,搞的我脑溢血常识都不知道了。
mychk.checked是bool值。mychk的value是有的。
哎呀,会过来一看,原来是这么简单的问题。
我还在request【“sel”】
现在解决了,谢谢所有提过建议的朋友们。
我解决的最后关键就是request没用。
改用mychk.value,然后!ispostback不能丢了。
再次在此谢谢各位了~!!!
可能这几天没休息好,搞的我脑溢血常识都不知道了。
mychk.checked是bool值。mychk的value是有的。
哎呀,会过来一看,原来是这么简单的问题。
我还在request【“sel”】
现在解决了,谢谢所有提过建议的朋友们。
我解决的最后关键就是request没用。
改用mychk.value,然后!ispostback不能丢了。
再次在此谢谢各位了~!!!
#42
对不起对不起
谢谢你的帮助。
我太久没睡觉了,所以有些搞不清了。谢谢你。
#43
总算能踏实安心睡个好觉了。。。。
55555555
55555555
#44
LZ可以用服务器端控件。
应该可以搞定,我做过用户管理在gridview里加checkbox后台遍历gridview每行。
应该可以搞定,我做过用户管理在gridview里加checkbox后台遍历gridview每行。
#1
n_id='" + myid + "'");
id如果是int不需要加'',否则会错的
id如果是int不需要加'',否则会错的
#2
try:
foreach (GridViewRow row in DataGrid1.Rows)
{
CheckBox flag = row.Cells[x].FindControl("sel") as CheckBox;
if (flag != null && flag.Checked)
{
.....
}
x 是你checkbox 在地几个cell里(0 based)
________________________________________________
mintsilk
mintsilk@ziplecture.com
Ziplecture.com -- free online training
foreach (GridViewRow row in DataGrid1.Rows)
{
CheckBox flag = row.Cells[x].FindControl("sel") as CheckBox;
if (flag != null && flag.Checked)
{
.....
}
x 是你checkbox 在地几个cell里(0 based)
________________________________________________
mintsilk
mintsilk@ziplecture.com
Ziplecture.com -- free online training
#3
打个断点跟踪下吧 看看控件有没取到额!
#4
用datalist,id为list_id
在ItemTemplate添加一个隐藏的html控件input,<input type="hidden" id="SelectedID" runat="server" value='<%#Eval("n_id")%>' />,再添加一个服务器控件<asp:checkbox id="X_Z" runat="server" />
再在datalist外添加一个button服务器控件,在cs后台添加该button事件:
string dgIDs = "";
bool BxsChkd = false;
foreach (DataListItem y in list_id.Items)
{
if (((CheckBox)y.FindControl("X_Z")).Checked)
{
BxsChkd = true;
dgIDs += ((HtmlInputHidden)y.FindControl("SelectedID")).Value.ToString() + ",";
}
if (dgIDs.Length.ToString() != "0")
{
//执行删除操作
//注意:在写sql删除语言时,("delete from 数据表 where n_id in (" + dgIDs.Substring(0, dgIDs.LastIndexOf(",")) + ")")
}
else
{
//弹出没有选择项的对话框
}
}
在ItemTemplate添加一个隐藏的html控件input,<input type="hidden" id="SelectedID" runat="server" value='<%#Eval("n_id")%>' />,再添加一个服务器控件<asp:checkbox id="X_Z" runat="server" />
再在datalist外添加一个button服务器控件,在cs后台添加该button事件:
string dgIDs = "";
bool BxsChkd = false;
foreach (DataListItem y in list_id.Items)
{
if (((CheckBox)y.FindControl("X_Z")).Checked)
{
BxsChkd = true;
dgIDs += ((HtmlInputHidden)y.FindControl("SelectedID")).Value.ToString() + ",";
}
if (dgIDs.Length.ToString() != "0")
{
//执行删除操作
//注意:在写sql删除语言时,("delete from 数据表 where n_id in (" + dgIDs.Substring(0, dgIDs.LastIndexOf(",")) + ")")
}
else
{
//弹出没有选择项的对话框
}
}
#5
==这个是代码页:
protected void chkAll_CheckedChanged(object sender, EventArgs e)
{ //全选
//sender为事件源,它是CheckBox所以可以强制转成CheckBox.
CheckBox cball=(CheckBox)sender;//cball就为全选CheckBox
if (cball.Checked == true)
{//全选CheckBox被选中,用foreach遍历GridView中的所有行
foreach (GridViewRow gvr in this.GridView1.Rows)
{//gvr对象每循环一次代表一行,从第0行开始.
//Cells[8]表示第8个单元格.
//在GridView中的所有行的第8个单元格中用FindControl()方法通过控件的ID查找控件,找到控件后强制转换成它原来的类型。
CheckBox cbone=(CheckBox)gvr.Cells[8].FindControl("chkOne");
cbone.Checked = true;
}
}
else
{//全选没被选中
foreach (GridViewRow gvr in this.GridView1.Rows)
{
CheckBox cbone = (CheckBox)gvr.Cells[8].FindControl("chkOne");
cbone.Checked = false;
}
}
}
protected void Button3_Click(object sender, EventArgs e)
{//删除被选中的项:
foreach (GridViewRow gvr in this.GridView1.Rows)
{
CheckBox cbone = (CheckBox)gvr.Cells[8].FindControl("chkOne");
if (cbone.Checked) //如果当前行的CheckBox被选中
{//删除
//要删除必定会有一删除的条件
string id = gvr.Cells[1].Text;
SqlConnection conn = new SqlConnection("server=.;database=northwind;uid=sa;pwd=;");
string sqlStr = "delete employees where employeeid=@id";
SqlCommand cmd = new SqlCommand(sqlStr,conn);
cmd.Parameters.Add("@id",SqlDbType.Int,4);
cmd.Parameters["@id"].Value = id;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
//重新绑定
this.DataBind();
}
}
Html页
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" BackColor="White" BorderColor="#CC9966" BorderStyle="None"
BorderWidth="1px" CellPadding="4" DataSourceID="SqlDataSource1" OnRowCreated="GridView1_RowCreated">
<FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
<RowStyle BackColor="White" ForeColor="#330099" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
<PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowSelectButton="True" />
<asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" InsertVisible="False"
ReadOnly="True" SortExpression="EmployeeID" />
<asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
<asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
<asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
<asp:BoundField DataField="HireDate" DataFormatString="{0:d}" HeaderText="HireDate"
HtmlEncode="False" SortExpression="HireDate" />
<asp:ImageField DataImageUrlField="LastName" DataImageUrlFormatString="images/{0}"
HeaderText="权限">
</asp:ImageField>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkAll" runat="server" AutoPostBack="True" Font-Bold="True" Font-Size="9pt"
ForeColor="White" OnCheckedChanged="chkAll_CheckedChanged" Text="全选" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkOne" runat="server" Text="选择" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
protected void chkAll_CheckedChanged(object sender, EventArgs e)
{ //全选
//sender为事件源,它是CheckBox所以可以强制转成CheckBox.
CheckBox cball=(CheckBox)sender;//cball就为全选CheckBox
if (cball.Checked == true)
{//全选CheckBox被选中,用foreach遍历GridView中的所有行
foreach (GridViewRow gvr in this.GridView1.Rows)
{//gvr对象每循环一次代表一行,从第0行开始.
//Cells[8]表示第8个单元格.
//在GridView中的所有行的第8个单元格中用FindControl()方法通过控件的ID查找控件,找到控件后强制转换成它原来的类型。
CheckBox cbone=(CheckBox)gvr.Cells[8].FindControl("chkOne");
cbone.Checked = true;
}
}
else
{//全选没被选中
foreach (GridViewRow gvr in this.GridView1.Rows)
{
CheckBox cbone = (CheckBox)gvr.Cells[8].FindControl("chkOne");
cbone.Checked = false;
}
}
}
protected void Button3_Click(object sender, EventArgs e)
{//删除被选中的项:
foreach (GridViewRow gvr in this.GridView1.Rows)
{
CheckBox cbone = (CheckBox)gvr.Cells[8].FindControl("chkOne");
if (cbone.Checked) //如果当前行的CheckBox被选中
{//删除
//要删除必定会有一删除的条件
string id = gvr.Cells[1].Text;
SqlConnection conn = new SqlConnection("server=.;database=northwind;uid=sa;pwd=;");
string sqlStr = "delete employees where employeeid=@id";
SqlCommand cmd = new SqlCommand(sqlStr,conn);
cmd.Parameters.Add("@id",SqlDbType.Int,4);
cmd.Parameters["@id"].Value = id;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
//重新绑定
this.DataBind();
}
}
Html页
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" BackColor="White" BorderColor="#CC9966" BorderStyle="None"
BorderWidth="1px" CellPadding="4" DataSourceID="SqlDataSource1" OnRowCreated="GridView1_RowCreated">
<FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
<RowStyle BackColor="White" ForeColor="#330099" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
<PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowSelectButton="True" />
<asp:BoundField DataField="EmployeeID" HeaderText="EmployeeID" InsertVisible="False"
ReadOnly="True" SortExpression="EmployeeID" />
<asp:BoundField DataField="LastName" HeaderText="LastName" SortExpression="LastName" />
<asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
<asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
<asp:BoundField DataField="HireDate" DataFormatString="{0:d}" HeaderText="HireDate"
HtmlEncode="False" SortExpression="HireDate" />
<asp:ImageField DataImageUrlField="LastName" DataImageUrlFormatString="images/{0}"
HeaderText="权限">
</asp:ImageField>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkAll" runat="server" AutoPostBack="True" Font-Bold="True" Font-Size="9pt"
ForeColor="White" OnCheckedChanged="chkAll_CheckedChanged" Text="全选" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkOne" runat="server" Text="选择" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
#6
我的这个是在05里面实现的简单的很
#7
精神可佳, 顶一个
Request.Form[Name]
Request.Form[Name]
#8
可怜的楼主,你为什么忘记page_load里增加if(!ispostpack)
protected void Page_Load(object sender, System.EventArgs e)
{
if(!ispostpack) //为什么忘记加他
ds = Socut.Data.ExecuteDataSet("SELECT * FROM socut_news", "TableName");
DataGrid1.DataSource = ds;//设置数据源
DataGrid1.DataBind();//绑定数据
}
protected void Page_Load(object sender, System.EventArgs e)
{
if(!ispostpack) //为什么忘记加他
ds = Socut.Data.ExecuteDataSet("SELECT * FROM socut_news", "TableName");
DataGrid1.DataSource = ds;//设置数据源
DataGrid1.DataBind();//绑定数据
}
#9
可爱的楼主,要学会调试啊!
解决方案,如楼上所述!
为什么呢,请看如下:
每次你刷新一次页面首先它不是与postback机理相同,他是与你在刷新前一个页面的操作是一致的,比如,你是第一次载入页面的话,如果刷新页面那么在!ispostback中的程序在刷新会在执行一遍.如果你是在第二次或更多刷新页面,那么刷新页面后执行的就不会是!Ispostback,而是ispostback中的程序,并且会执行在上次页面刷新你进行的操作。
其实.NET页面加载时先调用Init事件,初始化页面,然后再触发LOAD事件,而Page_Load只是一个方法,在LOAD事件触发时调用了这个方法.
至于控件,在页面加载时也是先调用Init事件,并调用Init(方法)进行初始化,然后再触发LOAD事件加载.
解决方案,如楼上所述!
为什么呢,请看如下:
每次你刷新一次页面首先它不是与postback机理相同,他是与你在刷新前一个页面的操作是一致的,比如,你是第一次载入页面的话,如果刷新页面那么在!ispostback中的程序在刷新会在执行一遍.如果你是在第二次或更多刷新页面,那么刷新页面后执行的就不会是!Ispostback,而是ispostback中的程序,并且会执行在上次页面刷新你进行的操作。
其实.NET页面加载时先调用Init事件,初始化页面,然后再触发LOAD事件,而Page_Load只是一个方法,在LOAD事件触发时调用了这个方法.
至于控件,在页面加载时也是先调用Init事件,并调用Init(方法)进行初始化,然后再触发LOAD事件加载.
#10
是string的
#11
我现在只能用datagrid。。不能改datalist
否则没办法弄下去。
#12
哦???难道我????
试试先。
#13
function SelectAll(frm)
{
for (var i=0;i<frm.elements.length;i++)
frm.elements[i].checked = frm.selectall.checked;
}
function CheckSelect(frm)
{
var col=frm.elements;
var obj=frm.selectall;
var intEls=0,intChks=0;
for(var i=0;i<col.length;i++)
{
if(col[i].type=="checkbox"&&col[i].name!="selectall")
{
intEls++;
if(col[i].checked)
intChks++;
}
}
obj.checked=(intEls==intChks);
}
<asp:datagrid id="DataGrid1" runat="server" Width="100%" AllowPaging="True" PageSize="15" AutoGenerateColumns="False">
<SelectedItemStyle CssClass="SelectedItemback"></SelectedItemStyle>
<AlternatingItemStyle CssClass="Alternatingback"></AlternatingItemStyle>
<ItemStyle CssClass="griditem"></ItemStyle>
<HeaderStyle CssClass="gridheader"></HeaderStyle>
<Columns>
<asp:BoundColumn Visible="False" DataField="ZT" HeaderText="状态"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="<input type=checkbox name='selectall' onClick='SelectAll(document.Form1)'>全选">
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" Width="8%"></HeaderStyle>
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Visible="False"></PagerStyle>
</asp:datagrid>
private void But_Del_Click(object sender, System.EventArgs e)
{
string XTBH="",BH="";
foreach(DataGridItem item in DataGrid1.Items)
{
if(((CheckBox)item.FindControl("CheckBox1")).Checked)
{
XTBH+=item.Cells[2].Text.ToString().Trim()+",";
}
}
if(XTBH.Length==0)
{
this.Response.Write("<script language='javascript'>alert('请选择要操作的数据')</script>");
return;
}
XTBH=XTBH.Substring(0,XTBH.Length-1);
BH="in ("+XTBH+")";
Socut.Data.ExecuteDataSet("DELETE FROM socut_news WHERE n_id in '" + BH+ "'");
//删除数据
// 绑定数据
}
{
for (var i=0;i<frm.elements.length;i++)
frm.elements[i].checked = frm.selectall.checked;
}
function CheckSelect(frm)
{
var col=frm.elements;
var obj=frm.selectall;
var intEls=0,intChks=0;
for(var i=0;i<col.length;i++)
{
if(col[i].type=="checkbox"&&col[i].name!="selectall")
{
intEls++;
if(col[i].checked)
intChks++;
}
}
obj.checked=(intEls==intChks);
}
<asp:datagrid id="DataGrid1" runat="server" Width="100%" AllowPaging="True" PageSize="15" AutoGenerateColumns="False">
<SelectedItemStyle CssClass="SelectedItemback"></SelectedItemStyle>
<AlternatingItemStyle CssClass="Alternatingback"></AlternatingItemStyle>
<ItemStyle CssClass="griditem"></ItemStyle>
<HeaderStyle CssClass="gridheader"></HeaderStyle>
<Columns>
<asp:BoundColumn Visible="False" DataField="ZT" HeaderText="状态"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="<input type=checkbox name='selectall' onClick='SelectAll(document.Form1)'>全选">
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" Width="8%"></HeaderStyle>
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Visible="False"></PagerStyle>
</asp:datagrid>
private void But_Del_Click(object sender, System.EventArgs e)
{
string XTBH="",BH="";
foreach(DataGridItem item in DataGrid1.Items)
{
if(((CheckBox)item.FindControl("CheckBox1")).Checked)
{
XTBH+=item.Cells[2].Text.ToString().Trim()+",";
}
}
if(XTBH.Length==0)
{
this.Response.Write("<script language='javascript'>alert('请选择要操作的数据')</script>");
return;
}
XTBH=XTBH.Substring(0,XTBH.Length-1);
BH="in ("+XTBH+")";
Socut.Data.ExecuteDataSet("DELETE FROM socut_news WHERE n_id in '" + BH+ "'");
//删除数据
// 绑定数据
}
#14
回八楼。。没用哦
加了还是按钮没反应。
我觉得还是取值的问题。取不到。
加了还是按钮没反应。
我觉得还是取值的问题。取不到。
#15
帮顶
#16
#17
#18
谢谢楼上的
但是我看了半天,看不出有什么联系?
谁能明确指出我的代码里面的问题吗?
我觉得我这样比较写的简洁了,不想再复杂化。
但是我看了半天,看不出有什么联系?
谁能明确指出我的代码里面的问题吗?
我觉得我这样比较写的简洁了,不想再复杂化。
#19
楼主注意身体哈,先顶
#20
应该是个很简单的问题,建议楼主将整个页面的代码(cs,xhtml)都帖出来,让大家给你测试一下,相信很快就ok
#21
要加上 if(!ispostback) ,如果取不到.可以设置断点高度下
__________
QQ:3761290
__________
QQ:3761290
#22
protected void Button1_OnClick(object sender, EventArgs e)
{
for (int i = 0; i < DataGrid1.Items.Count; i++)
{
HtmlInputCheckBox mychk = (HtmlInputCheckBox)DataGrid1.Items[i].FindControl("sel");
if (mychk.Checked == true)
{
string myid = mychk.value; //修改了
Socut.Data.ExecuteDataSet("DELETE FROM socut_news WHERE n_id='" + myid + "'");
}
}
}
{
for (int i = 0; i < DataGrid1.Items.Count; i++)
{
HtmlInputCheckBox mychk = (HtmlInputCheckBox)DataGrid1.Items[i].FindControl("sel");
if (mychk.Checked == true)
{
string myid = mychk.value; //修改了
Socut.Data.ExecuteDataSet("DELETE FROM socut_news WHERE n_id='" + myid + "'");
}
}
}
#23
在Access数据库里主键不需要加“,但在SQL里可以加,也可以不加。
#24
好的,我都贴,我自己也是弄的测试页面。
环境:xp professional sp3。vs2005。.net2.0.iis5.1。sql2000
<%@ Page language="c#" Inherits="Show_Socut_Data.News.Manage" CodeFile="Manage.aspx.cs" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Manage</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script language="javascript">
function checkAll()
{
var frm=document.Form1 ;
for(var i=0;i<frm.elements.length;i++)
{
var e=frm.elements[i];
if(e.name!="allbox" && e.type=="checkbox") //仅对datagrid <itemTemplate>中的checkbox执行操作
{
var eName= e.name.split(':');
if(eName[0]=="DataGrid1")
{
e.checked=frm.allbox.checked;
}
}
}
}
</script>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<table cellSpacing="1" cellPadding="5" width="780" align="center" bgColor="#cccccc" border="0">
<tr>
<td align="center" width="788" bgColor="#ffffff" height="150">网站顶部</td>
</tr>
</table>
<table cellSpacing="1" cellPadding="5" width="780" align="center" bgColor="#cccccc" border="0">
<tr bgColor="#ffffff">
<td width="180" height="200">用户登陆</td>
<td vAlign="top" rowSpan="2">
<asp:datagrid id="DataGrid1" runat="server" DataKeyField="n_id" AutoGenerateColumns="False" Height="120px" Width="575px">
<Columns>
<asp:TemplateColumn HeaderText="求职信息:">
<ItemTemplate>
<input id="sel" name="sel" type="checkbox" runat="server" value=<%#Eval("n_id")%>/>
<a href='edit.aspx?id=<%#Eval("n_id")%>' target=_blank>
编辑</a>·<a href='view.aspx?id=<%#Eval("n_id")%>' target=_blank><%#Eval("n_title")%></a>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
<input type="checkbox" name="allbox" onclick="javascript:checkAll();">
<asp:Button ID="Button1" runat="server" OnClick="Button1_OnClick" Text="Delete Selected"
Width="174px" /></td>
</tr>
<tr bgColor="#ffffff">
<td height="200">文章统计</td>
</tr>
</table>
<table cellSpacing="1" cellPadding="5" width="780" align="center" bgColor="#cccccc" border="0">
<tr>
<td align="center" width="788" bgColor="#ffffff" height="150">
网站底部</td>
</tr>
</table>
</form>
</body>
</HTML>
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Show_Socut_Data.News
{
/// <summary>
/// Manage 的摘要说明。
/// </summary>
public partial class Manage : System.Web.UI.Page
{
public DataSet ds = new DataSet();//将DataSet实例化
protected void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
ds = Socut.Data.ExecuteDataSet("SELECT * FROM socut_news", "TableName");
DataGrid1.DataSource = ds;//设置数据源
DataGrid1.DataBind();//绑定数据
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
}
#endregion
protected void Button1_OnClick(object sender, EventArgs e)
{
int mycount = DataGrid1.Items.Count;
for (int i = 0; i < mycount; i++)
{
HtmlInputCheckBox mychk = (HtmlInputCheckBox)DataGrid1.Items[i].FindControl("sel");
if (mychk.Checked == true)
{
string myid = Request["sel"];
Socut.Data.ExecuteDataSet("DELETE FROM socut_news WHERE n_id='" + myid + "'");
}
}
}
}
}
#25
我用了一个数据库组件
socut.data.dll3.1
socut.data.dll3.1
#26
测试了没有用。
mychk是定义的Htmlinputcheckbox的值,只有true或者false。不可能行得通
即使换成了sel.value也不行。
报错提示:上下文没有sel的定义
#27
因为input不是服务器控件,回调过后他的状态是不会得以保存的,你可以把它换成asp:CheckBox或者在input中
加上enableviewstate:
<input id="sel" enableviewstate="true" name="sel" type="checkbox" runat="server" value='<%#Eval("n_id")%>' />
加上enableviewstate:
<input id="sel" enableviewstate="true" name="sel" type="checkbox" runat="server" value='<%#Eval("n_id")%>' />
#28
另外,你既然已经使它runat="server"了,就不能再用Request["sel"]来获取它的Value了,直接用
string myid = mychk.Value;即可
string myid = mychk.Value;即可
#29
……LZ的上一个帖子里我回复了,当时在网吧,手打代码,mychk.value,如果LZ是直接复制的话实在是抱歉了……
#30
您的意思是??v不要大写还是???
另外mychk没有value属性。
应该是sel吧?
对不对?
#31
HtmlInputCheckBox 类型怎么可能没有Value属性
![关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看 关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OW1iM0oxYlM1amMyUnVMbTVsZEM5UWIybHVkRVp2Y25WdEwzVnBMM05qY21sd2RITXZZM05rYmk5UWJIVm5hVzR2TURBeEwyWmhZMlV2TkRBdVoybG0%3D.jpg?w=700&webp=1)
#32
坚持住!我有过你类似的经历,最后一定可以搞定!
#33
PS:
我的目标是 ---->
![关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看 关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwyRmpkQzVoYVc5dUxuTmtieTVqYjIwdlVISnZhbVZqZEM5QlkzUkJjbVZoTDNSMWFXcHBZVzR2ZEhWcGFtbGhiaTVoYzNBX2RXbGtQVGN6T0RJMVhWc3ZhVzFuWFZ0cGJXYzlhSFIwY0RvdkwyRmpkQzVoYVc5dUxuTmtieTVqYjIwdlVISnZhbVZqZEM5QlkzUkJjbVZoTDNSMWFXcHBZVzR2ZEhWcGFtbGhiaTVoYzNBX2RXbGtQVGcwTXpjelhWc3ZhVzFuWFZ0cGJXYzlhSFIwY0RvdkwyRmpkQzVoYVc5dUxuTmtieTVqYjIwdlVISnZhbVZqZEM5QlkzUkJjbVZoTDNSMWFXcHBZVzR2ZEhWcGFtbGhiaTVoYzNBX2RXbGtQVGcwTkRFMlhWc3ZhVzFuWFZ0cGJXYzlhSFIwY0RvdkwyRmpkQzVoYVc5dUxuTmtieTVqYjIwdlVISnZhbVZqZEM5QlkzUkJjbVZoTDNSMWFXcHBZVzR2ZEhWcGFtbGhiaTVoYzNBX2RXbGtQVGcwTkRjMVhWc3ZhVzFuWFZ0cGJXYzlhSFIwY0RvdkwyMWxaR0ZzTG1OelpHNHVibVYwTDNWcEwzTjBlV3hsY3k5cGJXRm5aWE12Y21Wa1h6RXVaMmxt.jpg?w=700&webp=1)
![关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看 关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwyMWxaR0ZzTG1OelpHNHVibVYwTDNWcEwzTjBlV3hsY3k5cGJXRm5aWE12Y21Wa1h6SXVaMmxt.jpg?w=700&webp=1)
![关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看 关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwyMWxaR0ZzTG1OelpHNHVibVYwTDNWcEwzTjBlV3hsY3k5cGJXRm5aWE12Y21Wa1h6TXVaMmxt.jpg?w=700&webp=1)
![关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看 关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwyRmpkQzVoYVc5dUxuTmtieTVqYjIwdlVISnZhbVZqZEM5QlkzUkJjbVZoTDNSMWFXcHBZVzR2ZEhWcGFtbGhiaTVoYzNBX2RXbGtQVGcwTlRFNVhWc3ZhVzFuWFZ0cGJXYzlhSFIwY0RvdkwyRmpkQzVoYVc5dUxuTmtieTVqYjIwdlVISnZhbVZqZEM5QlkzUkJjbVZoTDNSMWFXcHBZVzR2ZEhWcGFtbGhiaTVoYzNBX2RXbGtQVGcwTlRZNVhWc3ZhVzFuWFZ0cGJXYzlhSFIwY0RvdkwyRmpkQzVoYVc5dUxuTmtieTVqYjIwdlVISnZhbVZqZEM5QlkzUkJjbVZoTDNSMWFXcHBZVzR2ZEhWcGFtbGhiaTVoYzNBX2RXbGtQVGcwTmpBd1hWc3ZhVzFuWFZ0cGJXYzlhSFIwY0RvdkwyMWxaR0ZzTG1OelpHNHVibVYwTDNWcEwzTjBlV3hsY3k5cGJXRm5aWE12ZVdWc2JHOTNYekV1WjJsbQ%3D%3D.jpg?w=700&webp=1)
![关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看 关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwyMWxaR0ZzTG1OelpHNHVibVYwTDNWcEwzTjBlV3hsY3k5cGJXRm5aWE12ZVdWc2JHOTNYekl1WjJsbQ%3D%3D.jpg?w=700&webp=1)
![关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看 关于checkbox取值的老问题,我弄了两天加一个通宵就是搞不定,大家帮帮忙,来看看](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwyMWxaR0ZzTG1OelpHNHVibVYwTDNWcEwzTjBlV3hsY3k5cGJXRm5aWE12ZVdWc2JHOTNYek11WjJsbQ%3D%3D.jpg?w=700&webp=1)
^_^
#34
这里是删除按钮代码:
System.Web.UI.WebControls.CheckBox chk;
int all = this.DLJobList.Items.Count;
for (int i = 0; i < all; i++)
{
chk = (CheckBox)(this.DLJobList.Items[i].FindControl("chkExport"));
if (chk.Checked == true)
{
j++;
}
}
if (j == 0)
{
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "a", "alert('请选择要操作的项!');", true);
return;
}
else
{
try
{
for (int i = 0; i < all; i++)
{
chk = (CheckBox)(this.DLJobList.Items[i].FindControl("chkExport"));
if (chk.Checked == true)
{
int JobID = Convert.ToInt32(this.DLJobList.DataKeys[this.DLJobList.Items[i].ItemIndex]);
myjob.DelQq_Job(JobID);
}
}
LoadJobList(ViewState["strsql"].ToString());
}
catch (Exception ex)
{
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "a", "alert('操作失败!数据库维护中!');", true);
return;
}
}
以上功能可以用的,我一直在这样用的
#35
但是strID提取的是我的u_id。
mychk是个bool型,只是中间用来测试的吧
我提取他的值有什么用呢
#36
貌似太复杂了,我也测试了,不大有作用,很多小地方出错。
我这里就想大家帮忙找下我代码的错误。。
#37
首先楼主设断点看看你后台的代码取值是多少,取没取到值
楼主这里定义了 <input id="sel" name="sel" type="checkbox" runat="server" value=<%#Eval("n_id")%>/>
31楼你说取mychk.Value 是true 或false 真是这样的话 value=<%#Eval("n_id")%>就没意义了
这样的话你试试在它后面加个hidden
<INPUT id="txtN_id" type="hidden" value=<%#Eval("n_id")%> name="Hidden1" runat="server">
然后在后台代码取txtN_id 的value
楼主这里定义了 <input id="sel" name="sel" type="checkbox" runat="server" value=<%#Eval("n_id")%>/>
31楼你说取mychk.Value 是true 或false 真是这样的话 value=<%#Eval("n_id")%>就没意义了
这样的话你试试在它后面加个hidden
<INPUT id="txtN_id" type="hidden" value=<%#Eval("n_id")%> name="Hidden1" runat="server">
然后在后台代码取txtN_id 的value
#38
简单说一下思路:
取值操作可以交给客户端js来处理,再将所有选中checkbox的值用一个分割符拼接起来 如: 1,2,3 再把这个串交给带runat=server 的隐藏域,后台在触发"批量删除"按钮操作时,直接取该隐藏域的值就可以了
取值操作可以交给客户端js来处理,再将所有选中checkbox的值用一个分割符拼接起来 如: 1,2,3 再把这个串交给带runat=server 的隐藏域,后台在触发"批量删除"按钮操作时,直接取该隐藏域的值就可以了
#39
for (int i = 0; i < mycount; i++)
{
//HtmlInputCheckBox mychk = (HtmlInputCheckBox)DataGrid1.Items[i].FindControl("Checkbox1");
HtmlInputCheckBox mychk = (HtmlInputCheckBox)GridView1.Rows[i].FindControl("Checkbox1");
if (mychk.Checked == true)
{
string myid = mychk.Value;
//Socut.Data.ExecuteDataSet("DELETE FROM socut_news WHERE n_id='" + myid + "'");
Response.Write(myid);
}
}
可以^0^
#40
strID是什么?哪来的?你24楼的代码哪有这东西?
你24楼代码这么定义
HtmlInputCheckBox mychk = (HtmlInputCheckBox)DataGrid1.Items[i].FindControl("sel");
那么mychk又怎么会是bool型?
你的思维很混乱
#41
谢谢楼上所有朋友。
可能这几天没休息好,搞的我脑溢血常识都不知道了。
mychk.checked是bool值。mychk的value是有的。
哎呀,会过来一看,原来是这么简单的问题。
我还在request【“sel”】
现在解决了,谢谢所有提过建议的朋友们。
我解决的最后关键就是request没用。
改用mychk.value,然后!ispostback不能丢了。
再次在此谢谢各位了~!!!
可能这几天没休息好,搞的我脑溢血常识都不知道了。
mychk.checked是bool值。mychk的value是有的。
哎呀,会过来一看,原来是这么简单的问题。
我还在request【“sel”】
现在解决了,谢谢所有提过建议的朋友们。
我解决的最后关键就是request没用。
改用mychk.value,然后!ispostback不能丢了。
再次在此谢谢各位了~!!!
#42
对不起对不起
谢谢你的帮助。
我太久没睡觉了,所以有些搞不清了。谢谢你。
#43
总算能踏实安心睡个好觉了。。。。
55555555
55555555
#44
LZ可以用服务器端控件。
应该可以搞定,我做过用户管理在gridview里加checkbox后台遍历gridview每行。
应该可以搞定,我做过用户管理在gridview里加checkbox后台遍历gridview每行。