<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox
Text='<%# DataBinder.Eval(Container.DataItem,"auto_id")%>'
runat="server" ID="Checkbox11" NAME="Checkbox11">
</ItemTemplate>
</asp:TemplateColumn>
我在前台加了一个删除按钮,双击后写事件,代码如下:private void btn_del_Click(object sender, System.EventArgs e)
{
for(int i=0;i<showData.Items.Count;i++)
{
chk=(CheckBox)showData.Items[i].Cells[0].FindControl("checkbox11");
if(chk.Checked)
{
//执行删除的语句
}
}1.用服务器控件<asp:CheckBox></asp:CheckBox>
2.还有你的删除应该是上面那样防在循环体内吧?
3.提示什么错误?
<ItemTemplate>
<asp:CheckBox
Text='<%# DataBinder.Eval(Container.DataItem,"auto_id")%>'
runat="server" ID="Checkbox11" NAME="Checkbox11">
</ItemTemplate>
</asp:TemplateColumn>
我在前台加了一个删除按钮,双击后写事件,代码如下:private void btn_del_Click(object sender, System.EventArgs e)
{
for(int i=0;i<showData.Items.Count;i++)
{
chk=(CheckBox)showData.Items[i].Cells[0].FindControl("checkbox11");
if(chk.Checked)
{
//执行删除的语句
}
}1.用服务器控件<asp:CheckBox></asp:CheckBox>
2.还有你的删除应该是上面那样防在循环体内吧?
3.提示什么错误?
解决方案 »
- js问题
- 消息弹出框原理??
- 子窗口关闭如何自动刷新父窗口
- vs2005在window2008下运行的问题
- 一个session值的 问题
- 【如何让一个Response.Write出来的页面位于屏幕的中央?????】
- 有关ASP.NET技术内幕中的组件Content Rotator
- 各位高手,为什么我作的asp.net工程的安装包,安装后的程序丢图片和图标
- asp.net的运行不正常,解决了可以再多给分
- 我做了一个用DotNetSpeech.dll写入MP3文件的项目,如果开机启动会报 没有注册类别 (异常来自 HRESULT:0x80040154
- 在页面上DataGrid使用DataSource,竟然说没有这个属性??请看代码
- 请问高手:登陆时session,cookie是怎么用的?
我在html页面加了一个摸板列。
提示错误
“/Info”应用程序中的服务器错误。
--------------------------------------------------------------------------------指定的转换无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 指定的转换无效。源错误:
行 133: for(int i=0;i<showData.Items.Count;i++)
行 134: {
行 135: chk=(CheckBox)showData.Items[i].Cells[0].FindControl("checkbox11");
行 136:
行 137:
有这样的例子吗?能给我看看吗?
Dim i As Integer
Dim c As Integer = DataGrid1.Items.Count
Dim chkSelected As HtmlControls.HtmlInputCheckBox
Dim b As Integer = 0
For i = 0 To (c - 1)
'从列表依次选取 每行
chkSelected = Nothing chkSelected = DataGrid1.Items(i).FindControl("che")
If (Not (chkSelected Is Nothing)) Then
'找到每行的复选框 If (chkSelected.Checked = True) Then
'如果复选框被选中,更新此行的内容 list(i) = DataGrid1.Items(i).Cells(1).Text
Response.Write(list(i).ToString)
End If End If
用服务器控件:
Dim i As Integer
Dim c As Integer = DataGrid1.Items.Count
Dim chkSelected As checkbox
Dim b As Integer = 0
For i = 0 To (c - 1)
'从列表依次选取 每行
chkSelected = Nothing chkSelected = DataGrid1.Items(i).FindControl("che")
If (Not (chkSelected Is Nothing)) Then
'找到每行的复选框 If (chkSelected.Checked = True) Then
'如果复选框被选中,更新此行的内容 list(i) = DataGrid1.Items(i).Cells(1).Text
Response.Write(list(i).ToString)
End If End If
Dim i As Integer
Dim c As Integer = DataGrid1.Items.Count
Dim chkSelected As HtmlControls.HtmlInputCheckBox
Dim b As Integer = 0
For i = 0 To (c - 1)
'从列表依次选取 每行
chkSelected = Nothing chkSelected = DataGrid1.Items(i).FindControl("che")
If (Not (chkSelected Is Nothing)) Then
'找到每行的复选框 If (chkSelected.Checked = True) Then
'如果复选框被选中,更新此行的内容 list(i) = DataGrid1.Items(i).Cells(1).Text
Response.Write(list(i).ToString)
End If End If
用服务器控件:
Dim i As Integer
Dim c As Integer = DataGrid1.Items.Count
Dim chkSelected As checkbox
Dim b As Integer = 0
For i = 0 To (c - 1)
'从列表依次选取 每行
chkSelected = Nothing chkSelected = DataGrid1.Items(i).FindControl("che")
If (Not (chkSelected Is Nothing)) Then
'找到每行的复选框 If (chkSelected.Checked = True) Then
'如果复选框被选中,更新此行的内容 list(i) = DataGrid1.Items(i).Cells(1).Text
Response.Write(list(i).ToString)
End If End If
<input type=checkbox value ='<%# DataBinder.Eval(Container.DataItem,"auto_id")%>' runat="server" ID="Checkbox11" NAME="Checkbox11" onclick=del()>你用chk=(CheckBox)showData.Items[i].Cells[0].FindControl("checkbox11");
中CheckBox是服务器空件<ASP:CheckBox>呀!你将chk=(CheckBox)showData.Items[i].Cells[0].FindControl("checkbox11");
改为chk=(HtmlInputCheckBox)showData.Items[i].Cells[0].FindControl("checkbox11");
不然当然出现System.InvalidCastException: 指定的转换无效。
{
protected System.Web.UI.WebControls.DataGrid DepartmentDataGrid;
protected System.Web.UI.WebControls.LinkButton OpenLinkButton;
protected System.Web.UI.WebControls.Label WarnLabel;
protected System.Data.OleDb.OleDbConnection ole_Con;
protected System.Data.OleDb.OleDbDataAdapter ole_Adapter_Cmd;
protected System.Data.DataSet data_DS;
//设定全局变量
//设定排序字段,页码
int pageIndex=0;
//设定表名
string department = "";
//设定本网页的名字
string currentPage="PMBrowse.aspx";
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(Session["user"] != null)
{
ole_Con = new MachineFactoryConName().Connection;
department = new MachineFactoryTableName().tablenameDepartmentName;
string selectStr = "select * from " + department;
this.ole_Adapter_Cmd = new OleDbDataAdapter(selectStr,this.ole_Con);
OleDbCommandBuilder ole_Cb = new OleDbCommandBuilder(this.ole_Adapter_Cmd);
this.data_DS = new DataSet();
try
{
this.ole_Adapter_Cmd.Fill(this.data_DS,department);
}
catch(Exception err)
{
string www = err.ToString();
string req="prevPage="+System.Web.HttpUtility.UrlEncode(currentPage,System.Text.Encoding.UTF8);
Response.Redirect("ErrorDataBase.aspx?"+req);
}
DataColumn[] dcPk = {data_DS.Tables[department].Columns["ID"]}; //对一个DataSet中的表添加约束
data_DS.Tables[department].PrimaryKey = dcPk;
DataColumn[] dcUk = {this.data_DS.Tables[department].Columns[department]};
this.data_DS.Tables[department].Constraints.Add("UK",dcUk,false);
InitPage();
}
else
{
Response.Redirect("ErrorRight.aspx");
}
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DepartmentDataGrid.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DepartmentDataGrid_ItemCommand);
this.DepartmentDataGrid.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DepartmentDataGrid_PageIndexChanged);
this.OpenLinkButton.Click += new System.EventHandler(this.OpenLinkButton_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void InitPage()
{
if(!Page.IsPostBack)
{
InitPageBeforePostBack();
}
else
{
InitPageAfterPostBack();
}
} private void InitPageBeforePostBack()
{
} private void InitPageAfterPostBack()
{
if(this.ViewState["pageIndex"] != null)
{
this.pageIndex = int.Parse(ViewState["pageIndex"].ToString());
}
} private void DepartmentDataGrid_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName == "Add")
{
if(((TextBox)e.Item.FindControl("NewDepartmentName")).Text != "")
{
try
{
DataRow dr = data_DS.Tables[department].NewRow();
dr["ID"] = this.GetAutoNumber(department) + 1;
dr[department] = ((TextBox)e.Item.FindControl("NewDepartmentName")).Text;
this.data_DS.Tables[department].Rows.Add(dr);
this.ole_Adapter_Cmd.Update(this.data_DS,department);
}
catch(Exception)
{
this.WarnLabel.Text = "该部门已经存在!";
}
BindGrid();
}
else
{
this.WarnLabel.Text = " 请输入你要添加的部门名称。";
}
}
else if(e.CommandName == "Update")
{
foreach (DataGridItem di in this.DepartmentDataGrid.Items)
{
if (di.ItemType == ListItemType.Item || di.ItemType == ListItemType.AlternatingItem)
{
DataRow dr = this.data_DS.Tables[department].Rows.Find(DepartmentDataGrid.DataKeys[di.ItemIndex]);
if (((CheckBox)di.FindControl("Delete")).Checked)
{
this.data_DS.Tables[department].Rows.Find(DepartmentDataGrid.DataKeys[di.ItemIndex]).Delete();
}
else
{
string ID = ((TextBox)di.FindControl("ID")).Text.ToString();
if(((TextBox)di.FindControl("DepartmentName")).Text != "")
{
try
{
dr[department] = ((TextBox)di.FindControl("DepartmentName")).Text;
}
catch(Exception)
{
this.WarnLabel.Text = "该部门已经存在!";
}
}
else
{
WarnLabel.Text = "自动编号=" + ID + " 的部门名称列不能为空!";
return;
}
}
}
} // Save the changes if there are any.
if (data_DS.HasChanges())
{
try
{
this.ole_Adapter_Cmd.Update(this.data_DS,department);
}
catch(Exception)
{
}
}
BindGrid();
}
} private void BindGrid()
{
int pageCount = 0;
double rowsCount = (double)this.data_DS.Tables[department].Rows.Count;
double pageSize = (double)this.DepartmentDataGrid.PageSize;
if( rowsCount/pageSize - (int)(rowsCount/pageSize) > 0.01)
{
pageCount = (int)(rowsCount/pageSize)+1;
}
else
{
pageCount = (int)(rowsCount/pageSize);
}
if(pageCount-1 >= this.pageIndex)
{
this.DepartmentDataGrid.CurrentPageIndex = this.pageIndex;
}
else
{
this.ViewState["pageIndex"] = this.pageIndex -1;
this.DepartmentDataGrid.CurrentPageIndex = this.pageIndex - 1;
}
this.DepartmentDataGrid.DataSource=this.data_DS.Tables[0].DefaultView;
this.DepartmentDataGrid.DataBind();
} private void OpenLinkButton_Click(object sender, System.EventArgs e)
{
this.pageIndex = 0 ;
this.ViewState["pageIndex"] = this.pageIndex;
BindGrid();
} private void DepartmentDataGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.pageIndex = e.NewPageIndex;
this.ViewState["pageIndex"] = this.pageIndex;
this.DepartmentDataGrid.CurrentPageIndex = this.pageIndex;
BindGrid();
} private int GetAutoNumber(string TableName)
{
int AutoNumberCount =0;
//string selectStr = "SELECT MAX("+FieldName+") FROM "+ TableName;
string selectStr = "SELECT IDENT_CURRENT('" +TableName+ "') FROM "+ TableName;
OleDbCommand myCommand = new OleDbCommand(selectStr,this.ole_Con);
try
{ if(this.ole_Con.State == System.Data.ConnectionState.Closed)
{
this.ole_Con.Open();
}
AutoNumberCount = int.Parse(myCommand.ExecuteScalar().ToString());
}
catch(Exception)
{
this.ole_Con.Close();
return -1;
}
this.ole_Con.Close();
return AutoNumberCount;
}
to lwgj我也这么想的,但是总出错。
能不能给个例子,把关键代码给我看看。
我在客户端加的控件,想在cs文件里面写button的双击事件,总传不过来参数,怎么写?
to lwgj我也这么想的,但是总出错。
能不能给个例子,把关键代码给我看看。
我在客户端加的控件,想在cs文件里面写button的双击事件,总传不过来参数,怎么写?
把这句话改为如下:
chk=(CheckBox)showData.Items[i].FindControl("checkbox11");