强烈状告微软!NET中的datagrid的编辑按钮pushbutton换成linkbutton,事件触发就发生问题了!

sindia 2005-03-16 11:15:20
笔者花了老半天,突然发现点击“编辑”时,编辑里的子程序进不去了,于是调整了PAGELOAD中的DATABIND事件,把它写到if !postback里面,才使该断点进去!可我保持原来程序不变,将编辑按钮pushbutton换成linkbutton,一切都搞定了,这实在太怪啦!同是“编辑按钮”,linkbutton和pushbutton的工作机制有什么区别吗?
要么就是bug,要么就强烈建议大家使用linkbutton!还有就是俺水平太烂了!晕!

...全文
250 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
czjcsdn 2005-04-07
  • 打赏
  • 举报
回复
我也遇到过这样的问题,怎么也搞不定,但换一台机器就行了.
我想杀了微软,JAVA里就不会出这样的鸟问题,而且类似的问题还有很多,都是莫明其妙的,微软有一天会倒
gqxs 2005-03-25
  • 打赏
  • 举报
回复
我也遇到乐,确实如此。
syzxq 2005-03-23
  • 打赏
  • 举报
回复
up
sindia 2005-03-21
  • 打赏
  • 举报
回复
万里长城永不倒!
sindia 2005-03-18
  • 打赏
  • 举报
回复
哪壶不开提哪壶,我是问,为什么换了PUSHBUTTON程序执行就有问题,而换成linkbutton,一切OK!
sindia 2005-03-17
  • 打赏
  • 举报
回复
晕,修改按钮就是EditCommandColumn
hackate 2005-03-17
  • 打赏
  • 举报
回复
你那样不行,要把按钮放到“摸班列”

<ItemTemplate>
<asp:LinkButton CommandName="edit" runat="server">编辑</asp:LinkButton>   
<asp:LinkButton CommandName="delete" ID="shanchu" Runat="server">删除</asp:LinkButton>
</ItemTemplate>

然后我就不把代码都帖出来了,然后你在在相应事件里判断编辑,删除什么的了

=================================================

对了,Bill大叔叫我告诉你说,如果还不行的话,你可以打电话咨询他,他在帮你找技术人员。。

他说叫你暂时平息怒火,可能是他们官方的问题。。。嘻嘻!
sindia 2005-03-17
  • 打赏
  • 举报
回复
整个团队的人都试了一下代码,这是真的
sindia 2005-03-17
  • 打赏
  • 举报
回复
UP
deepsen 2005-03-17
  • 打赏
  • 举报
回复
同意上面的,用模板列,然后在itemcommand里判断commandname就可以了,没什么不可以!
wwonion 2005-03-16
  • 打赏
  • 举报
回复
拉不出屎怪茅坑
  • 打赏
  • 举报
回复
友情UP
beibeilong 2005-03-16
  • 打赏
  • 举报
回复
觉得是你的程序问题,在datagrid中用pushbutton和linkbutton我都用过,都没有问题啊
你把代码贴出来看看
sindia 2005-03-16
  • 打赏
  • 举报
回复
我也希望是相同的,可问题真的发生了,折腾了我老人家大半天,才搞定!
baobei7758 2005-03-16
  • 打赏
  • 举报
回复
没有不同吧~
fxywkj 2005-03-16
  • 打赏
  • 举报
回复
先做个标记
sindia 2005-03-16
  • 打赏
  • 举报
回复
都是人,说的什么话呀,代码如下!aspx和cs文件如下:把编辑的linkbutton换成PUSHBUTTON就不行了!
考过去,就可以试一下!

有什么问题,我向各位求教了!

webform5.aspx

<%@ Page language="c#" Codebehind="WebForm5.aspx.cs" AutoEventWireup="false" Inherits="ASPNET.WebForm5" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm5</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="WebForm5" method="post" runat="server">
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 11px; POSITION: absolute; TOP: 42px" runat="server">
<Columns>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
</Columns>
</asp:DataGrid>
<asp:TextBox id="TextBox1" style="Z-INDEX: 102; LEFT: 15px; POSITION: absolute; TOP: 10px" runat="server" Width="211px" Height="25px"></asp:TextBox>
</form>
</body>
</HTML>


webform5.aspx.cs文件
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 ASPNET
{
/// <summary>
/// WebForm5 的摘要说明。
/// </summary>
public class WebForm5 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;

protected DataTable table=new DataTable();
protected System.Web.UI.WebControls.TextBox TextBox1;
protected DataRow row;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面

table.Columns.Add(new DataColumn("1",typeof(int)));
table.Columns.Add(new DataColumn("2",typeof(string)));
//性别列,用bool值表示,男为true,女为false
table.Columns.Add(new DataColumn("3",typeof(bool)));

Random rd=new Random();
for(int i=0;i<10;i++)
{

row=table.NewRow();
row[0]=i+1;
row[1]="用户"+(i+1).ToString();
row[2]=(rd.Next(0,80)%2==0); //用随机数来生成性别,以示公正原则:)
table.Rows.Add(row);
}
// DataGrid data binding
CreateDataGrid ();
DataGrid1.DataSource = table;
DataGrid1.DataBind();


}

#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.DataGrid1.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_CancelCommand);
this.DataGrid1.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_EditCommand);
this.DataGrid1.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_UpdateCommand);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void CreateDataGrid()
{
// Set DataGrid properties
DataGrid1.AutoGenerateColumns = false;

// Create ID column & add to DataGrid
BoundColumn col = new BoundColumn();
col.HeaderText="User ID";
col.DataField="1";
DataGrid1.Columns.Add(col);

// Create Name column & add to DataGrid
col = new BoundColumn();
col.HeaderText="User Name";
col.DataField="2";
DataGrid1.Columns.Add(col);

// Create Address column & add to DataGrid
col = new BoundColumn();
col.HeaderText="User Address";
col.DataField="3";
DataGrid1.Columns.Add(col);


}

private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex = e.Item.ItemIndex;
DataGrid1.DataBind();
}

private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex = -1;
DataGrid1.DataBind();
}

private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
table.Rows[e.Item.ItemIndex][0]=((TextBox)(e.Item.Cells[1].Controls[0])).Text;
table.Rows[e.Item.ItemIndex][1]=((TextBox)(e.Item.Cells[2].Controls[0])).Text;
table.Rows[e.Item.ItemIndex][2]=((TextBox)(e.Item.Cells[3].Controls[0])).Text;
//table.Rows [e.Item.ItemIndex ][0]="123";

DataGrid1.EditItemIndex = -1;
DataGrid1.DataBind();


}


}
}
syeerzy 2005-03-16
  • 打赏
  • 举报
回复
拉不出屎怪茅坑
.............

茅坑环境不够浪漫,没有拉屎的心情。。。。狠啊
skytouch_zyt 2005-03-16
  • 打赏
  • 举报
回复
偶然错误导致必然错误,可以理解
chinalinx 2005-03-16
  • 打赏
  • 举报
回复
^_^

:) 够狠 I 服了 YOU
加载更多回复(4)

62,046

社区成员

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

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

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

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