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

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

...全文
256 24 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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)
最新版本的jQuery EasyUI 1.3.6版全文API汉化文档火热出炉,由于很多人和我要chm格式的,所以本次API我提供了2种版本的API,一个还是以前的EXE格式,另外一个就是人气颇高的chm格式。本次还将EasyUI 1.3.6版直接提供到API包里面,方便没有去官网下载的人直接使用。请大家持续关注我发布的资源,不出意外,我是会一直持续更新本API文档的。本次更新内容大约有30个,Bug修复的只有2个,剩下的全是新增内容,EasyUI的控件已经越来越好用了,顶一个。但是希望能把性能也提升提升,总是感觉在某些情况下EasyUI的性能不是太好。具体更新内容请看下面的说明: jQuery EasyUI 1.3.6版本更新内容: Bug(修复) treegrid:修复“getChecked”方法不能正确的返回被选择的行的问题; tree:修复在“onlyLeafCheck”属性为true时,复选框无法在异步树种正确显示的问题。 Improvement(改进) treegrid:所有的选择和选的方法都扩展自datagrid组件; linkbutton:添加图标对齐功能的完整支持,可用值有:“top”、“bottom”、“left”、“right”; linkbutton:添加“size”属性,可用值有:“small”、“large”; linkbutton:添加“onClick”事件; menubutton:添加“menuAlign”属性,该属性允许用户设置顶级菜单对齐; combo:添加“panelAlign”属性,可用值有:“left”、“right”; calendar:添加“formatter”、“styler”和“validator”属性,这些属性允许用于自定义日历日期; calendar:添加“onChange”事件; panel:添加“method”、“queryParams”和“loader”选项; panel:添加“onLoadError”事件datagrid:添加“onBeginEdit”事件,该事件在一个行进入编辑模式时触发datagrid:添加“onEndEdit”事件,该事件在完成编辑但是编辑器尚未销毁之前触发datagrid:添加“sort”方法和“onBeforeSortColumn”事件datagrid:将“combogrid”编辑器集成到datagriddatagrid:添加“ctrlSelect”属性,在启用多行选择的时候允许使用Ctrl键+鼠标点击的方式进行多选操作; slider:添加“converter”属性,该属性允许用户决定如何将一个值转换为进度条位置或进度条位置值; searchbox:添加“disabled”属性; searchbox:添加“disable”、“enable”、“clear”、“reset”方法; spinner:添加“readonly”属性、“readonly”方法和“onChange”事件
jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签 1.3.6更新 Bug treegrid: getChecked方法不能返回正确的行. fixed. tree: 异步树,在onlyLeafCheck:true时复选框不显示正确. fixed. Improvement treegrid:继承datagrid组件所有的selecting和checking方法。 linkbutton:图标对齐方式,支持值:'top','bottom','left','right'。 linkbutton:添加"size"属性,支持值:'small','large'。 linkbutton:添加的onClick事件。 menubutton:添加"menuAlign"属性,允许用户设置顶级菜单对齐。 combo:添加"panelAlign"属性,支持值:'left','right'。 calendar:"formatter"、"styler"和"validator"选项可用于自定义日历日期。 calendar:添加的onChange事件。 panel:添加"method","queryParams"和"loader"属性。 panel:添加"onLoadError"事件datagrid:添加"onBeginEdit"事件datagrid:添加"onEndEdit"事件datagrid:添加"sort"方法和"onBeforeSortColumn"事件datagrid:"combogrid"编辑器集成到datagriddatagrid:添加"ctrlSelect"属性,允许使用ctrl+click 多选 slider:添加"converter"选项,允许用户决定如何将一个值转换为滑块的位置或滑块位置值。 searchbox:添加"disabled"属性。 searchbox:添加"disabled","enable","clear","reset"方法。 spinner:添加"readonly"属性、"readonly"方法和"onChange事件

62,243

社区成员

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

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

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

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