aspx:
<asp:DataList ID="DataList1" runat="server" ><ItemTemplate ><table><tr><td><a href="detail.aspx?s1=<%#DataBinder.Eval(Container.DataItem,"id1") %>"><%#DataBinder.Eval(Container.DataItem,"dt1") %></a></td><td><asp:LinkButton ID="Button1" Text=" 删" runat="server" CommandName="delete"/></td></tr></table></ItemTemplate>
</asp:DataList>
cs:
private void DataList1_DeleteCommand(object source,
System.Web.UI.WebControls.DataListCommandEventArgs e)
{
// Code to delete the item from the data source.
DataTable aTable = (DataTable)DataList1.DataSource;
aTable.Rows[e.Item.ItemIndex].Delete();
// Bind the data after the item is deleted.
DataList1.DataBind();
}
现在页面上的删除按钮点上去没反应
<asp:DataList ID="DataList1" runat="server" ><ItemTemplate ><table><tr><td><a href="detail.aspx?s1=<%#DataBinder.Eval(Container.DataItem,"id1") %>"><%#DataBinder.Eval(Container.DataItem,"dt1") %></a></td><td><asp:LinkButton ID="Button1" Text=" 删" runat="server" CommandName="delete"/></td></tr></table></ItemTemplate>
</asp:DataList>
cs:
private void DataList1_DeleteCommand(object source,
System.Web.UI.WebControls.DataListCommandEventArgs e)
{
// Code to delete the item from the data source.
DataTable aTable = (DataTable)DataList1.DataSource;
aTable.Rows[e.Item.ItemIndex].Delete();
// Bind the data after the item is deleted.
DataList1.DataBind();
}
现在页面上的删除按钮点上去没反应
解决方案 »
- C# Form 如何为自己扩展的控件添加事件
- VS2010 Chart控件0值怎么处理?
- 关于怎样在FORM中取值
- 首次运行程序或数据库连接失败时要求输入服务器名、数据库名、用户名、密码,数据库连接测试通过后将连接参数保存在配置文件中(xml、文本文件或注册表皆可)。
- 结构体传递的问题
- 怎么写Sybase的左连接语句?
- 小弟分少10分能求一个获得网页中<a href=XXXXX>里的href=后面的连接地址的正则吗
- visual c# 中制作浮动工具条的方法????
- 请问大家做程序用到数据结构的知识吗?
- 关于ContextMenu的问题,请大家帮忙。
- 在这两个语句上怎么加上事务处理~
- 关于System.Type.GetType()和typeof()
那么应该是处理 事件掉了在IDE设计界面上 点datalist控件 属性 选取 事件 重新点击 删除事件
如果是事件掉了应该会 产生DataList1_DeleteCommand1 将你上面的函数内容拷贝入新函数
并将 源函数删除private void DataList1_DeleteCommand1(object source,
System.Web.UI.WebControls.DataListCommandEventArgs e)
{
// Code to delete the item from the data source.
DataTable aTable = (DataTable)DataList1.DataSource;
aTable.Rows[e.Item.ItemIndex].Delete();
// Bind the data after the item is deleted.
DataList1.DataBind();
}
Object reference not set to an instance of an object.
Line 53: aTable.Rows[e.Item.ItemIndex].Delete();
System.Web.UI.WebControls.DataListCommandEventArgs e)
======================================================
protected void DataList1_DeleteCommand(object source,
System.Web.UI.WebControls.DataListCommandEventArgs e)
现在新问题是
Object reference not set to an instance of an object.
Line 53: aTable.Rows[e.Item.ItemIndex].Delete();
Object reference not set to an instance of an object我猜测 上面这句
DataTable aTable = (DataTable)DataList1.DataSource;
可能成功了,但是 (DataTable)DataList1.DataSource;返回的是null,你最好单步调式看看是不是这样
我这边一旦commandname设置成delete就出错
经过postback后,DataList1.DataSource,已经没了,aTable还是需要手工保存到ViewState或Session里,否则postback后无法使用
{
SqlConnection cn = new SqlConnection(connectionString);
string strDelete = "delete Note Where id = @ID";
SqlCommand cmd = new SqlCommand( strDelete, cn );
//使用 DataKeys的前提是你给DataList1设置过DataKeyField,一般是数据库表的主键
cmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = DataList1.DataKeys[e.Item.ItemIndex].ToString();
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
DataList1.SelectedIndex = -1;
//下面这个是重新绑定数据的方法
BindDataList();
}
Parameter name: index Line 57: cmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = DataList1.DataKeys[e.Item.ItemIndex].ToString();