各位高手,在线急等

zjg111 2003-08-28 04:45:01
请问高手我程序第118行错在哪里?另外其它地方写得对不对?谢谢!!!
<form runat="server">
<center>
<b>演示EditCommandColumn</b>
<asp:DataGrid id="score" runat="server"
HeaderStyle-BackColor="#aaaadd"
AlternatingItemStyle-BackColor="#eeeeee"
AutoGenerateColumns="False"
OnEditCommand="DataGrid_EditCommand"
OnUpdateCommand="DataGrid_UpdateCommand"
OnCancelCommand="DataGrid_CancelCommand"
OnItemCommand="news_delete"
>
<Columns>
<asp:BoundColumn HeaderText="姓名" DataField="Name" ReadOnly="True" />
<asp:BoundColumn HeaderText="语文" DataField="Chinese" />
<asp:BoundColumn HeaderText="数学" DataField="Math" />
<asp:BoundColumn HeaderText="英语" DataField="English" />
<asp:EditCommandColumn HeaderText="操作区"
EditText="编辑"
UpdateText="更新"
CancelText="取消"
/>
<asp:TemplateColumn HeaderText="删除">
<ItemTemplate>
*第118行 <asp:Button id="btndel" Text="删除" runat="server" OnClick="return confirm('您确实要删除吗?')"/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</center>
</form>
...全文
19 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjg111 2003-08-29
  • 打赏
  • 举报
回复
在大家的帮助下,我又参考了孟子e章的程序,已经解决,但可能代码写的不好
请大家提些修改意见吧,谢谢!!!

<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.OleDb" %>
<Script Language="C#" Runat="Server">
OleDbConnection MyConn;
public void Page_Load(Object src,EventArgs e)
{
//连接语句
string MyConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath("db1.mdb");
MyConn = new OleDbConnection(MyConnString);
MyConn.Open();


if(!Page.IsPostBack)
{
BindGrid();
}
}
ICollection CreateTable()
{
string strSel = "select * from Score";
DataSet ds = new DataSet();

OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strSel,MyConn);
MyAdapter.Fill(ds,"Score");

return ds.Tables["Score"].DefaultView;
}
public void BindGrid()
{
score.DataSource = CreateTable();
score.DataBind();
}

//处理Edit命令
public void DataGrid_EditCommand(Object sender,DataGridCommandEventArgs e)
{
score.EditItemIndex = (int)e.Item.ItemIndex;
BindGrid();
}

//处理Cancel命令
public void DataGrid_CancelCommand(Object sender,DataGridCommandEventArgs e)
{
score.EditItemIndex = -1;
BindGrid();
}

//处理Update命令
public void DataGrid_UpdateCommand(Object sender,DataGridCommandEventArgs e)
{
//更新数据库中的信息
string strName = e.Item.Cells[0].Text;
int intChinese = Int32.Parse(((TextBox)e.Item.Cells[1].Controls[0]).Text);
int intMath = Int32.Parse(((TextBox)e.Item.Cells[2].Controls[0]).Text);
int intEnglish = Int32.Parse(((TextBox)e.Item.Cells[3].Controls[0]).Text);

//更新数据库中的数据
string strUpdate = "Update Score Set Chinese="+intChinese+",Math="+intMath+",English="+intEnglish+" Where Name='"+strName+"'";
OleDbCommand MyComm = new OleDbCommand(strUpdate,MyConn);
MyComm.ExecuteNonQuery();

score.EditItemIndex = -1;
BindGrid();

}


private void DataGrid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if( e.Item.ItemIndex > -1)
((Button)e.Item.Cells[4].FindControl("btndel")).Attributes["onclick"]= "javascript:return confirm('确实要删除这个项目吗?')";

}


public void DataGrid_ItemCommand(Object sender,DataGridCommandEventArgs e)
{

string argName = e.CommandName;

if (argName=="del")
{

string strName = e.Item.Cells[0].Text;
string strUpdate = "delete from Score Where Name='"+strName+"'";
OleDbCommand MyComm = new OleDbCommand(strUpdate,MyConn);
MyComm.ExecuteNonQuery();

score.EditItemIndex = -1;
BindGrid();

}
}

</script>
<html>
<head>
<title></title>
</head>
<body>
<form runat="server">
<center>
<b>演示EditCommandColumn</b>
<asp:DataGrid id="score" runat="server"
HeaderStyle-BackColor="#aaaadd" DataKeyField="Name"
AlternatingItemStyle-BackColor="#eeeeee"
AutoGenerateColumns="False"
OnEditCommand="DataGrid_EditCommand"
OnUpdateCommand="DataGrid_UpdateCommand"
OnCancelCommand="DataGrid_CancelCommand"
OnItemCommand="DataGrid_ItemCommand"

OnItemCreated="DataGrid_ItemCreated"

>
<Columns>
<asp:BoundColumn HeaderText="姓名" DataField="Name" ReadOnly="True" />
<asp:BoundColumn HeaderText="语文" DataField="Chinese" />
<asp:BoundColumn HeaderText="数学" DataField="Math" />
<asp:BoundColumn HeaderText="英语" DataField="English" />
<asp:EditCommandColumn HeaderText="操作区"
EditText="编辑"
UpdateText="更新"
CancelText="取消"
/>
<asp:TemplateColumn HeaderText="删除">
<ItemTemplate>
<asp:Button id="btndel" Text="删除" CommandName="del" runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</center>
</form>
</body>
</html>
cyp503 2003-08-29
  • 打赏
  • 举报
回复


出错信息是什么?
zjg111 2003-08-29
  • 打赏
  • 举报
回复
小陈你好:我按你说的做了修改如下:当没有两个*号之间语句时,可以通过编译,
但一旦加上这些语句就提示页面无法访问,请问这是为什么,我应该在提示是否删除
后怎样删除这条记录?也请各位高手指教,谢谢!!(是否还需要再写别的过程?)

private void DataGrid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if( e.Item.ItemIndex > -1)
((Button)e.Item.Cells[4].FindControl("btndel")).Attributes["onclick"]= "javascript:return confirm('确实要删除这个项目吗?')";

*开始 string strName = e.Item.Cells[0].Text;
string strUpdate = "delete from Score Where Name='"+strName+"'";
OleDbCommand MyComm = new OleDbCommand(strUpdate,MyConn);
MyComm.ExecuteNonQuery();

score.EditItemIndex = -1;
*结束 BindGrid();


}
chenhigh 2003-08-28
  • 打赏
  • 举报
回复
private void dataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)//在ItemCreated时间中加比较好
因为它只需加载一次就够了
{
if( e.Item.ItemIndex > -1)
((LinkButton)e.Item.Cells[4].FindControl["btndel"]).Attributes["onclick"]= "javascript:return confirm('确实要删除这个项目吗?')";


}
crodling 2003-08-28
  • 打赏
  • 举报
回复
在datagrid的ItemDataBound事件里面加
leal 2003-08-28
  • 打赏
  • 举报
回复
建议你不要用web窗体控件button,改用html服务器端控件,就不会出错了
<INPUT type="button" value="Button" id="Button1" name="Button1" runat="server" OnClick="return confirm('您确实要删除吗?')">
沈逸 2003-08-28
  • 打赏
  • 举报
回复
服务器事件里面怎么能 搞javascript里面的 东西
在服务器段 搞个 对话框出来 整个服务器 不歇菜了
这种对话框 只能在 客户端调用波???
wyfwyf2000 2003-08-28
  • 打赏
  • 举报
回复
datagrid_ItemDataBound事件里添加
Button bt=(Button)e.Item.FindControl["btndel"]
bt.Attributes["onclick"]="javascript:return confirm(您确实要删除吗?');"
zjg111 2003-08-28
  • 打赏
  • 举报
回复
请问蓝风和大麦町,你们说的语句应该加在什么事件中,在datagrid中怎样调用该事件?
lwgj 2003-08-28
  • 打赏
  • 举报
回复
btndel.Attributes["onclick"]="javascript:return confirm('asdfadsf?');"

*第118行 <asp:Button id="btndel" Text="删除" runat="server" OnClick="return confirm('您确实要删除吗?')"/>
crodling 2003-08-28
  • 打赏
  • 举报
回复
在ItemDataBound里面添加
Button bt=(Button)e.Item.FindControl["btndel"]
bt.Attributes["onclick"]="javascript:return confirm(您确实要删除吗?');"
acewang 2003-08-28
  • 打赏
  • 举报
回复
肯定不对,在page_load里面添加:
btndel.Attributes["onclick"]="javascript:return confirm('asdfadsf?');"

*第118行 <asp:Button id="btndel" Text="删除" runat="server" OnClick="return confirm('您确实要删除吗?')"/>

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧