页面代码:
----------------------------------------------------------------------------------
<asp:DataGrid id="DataGrid1" runat="server" DataKeyField="ClassCode" AutoGenerateColumns="False" Width="424px">
<Columns>
<asp:BoundColumn DataField="classname" HeaderText="文章标题"></asp:BoundColumn>
<asp:TemplateColumn>
<HeaderTemplate>
<FONT face="宋体">删除</FONT>
</HeaderTemplate>
<ItemTemplate>
<FONT face="宋体">
<asp:ImageButton id="ImageButton1" runat="server" ImageUrl="../images/syts_an006.gif" CommandName="ok"CausesValidation="False"></asp:ImageButton></FONT>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
<asp:TextBox id="TextBox1" runat="server">
</asp:TextBox>
_后台代码____________________________________---------------------------------------------
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName == "ok")
{
//获取要修改记录的主键ID
int PKID = Convert.ToInt32(DataGrid1.DataKeys[e.Item.ItemIndex]);
ViewState["PKID"] = PKID;
TextBox1.Text = PKID.ToString();
}
绑定数据源能够成功显示在DG中,但就是不能执行摸板列的命令操作,
我来个如此写法都不能转到一个页面:
--------------------------------------------------------------
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName == "ok")
{
Response.Redirect("GroupConfig.aspx");
}
}
-----------------------------------------------------------------------
看来根本摸板列的按扭事件更本没执行,错误到底出在那里啊??????????????????
郁闷中,极度郁闷中,请指点:(
哦,对了,DataGrid是和一个dataset数据源绑定的...

解决方案 »

  1.   

    你的摸板列的按钮CommandName是不是OK呀
      

  2.   

    是的,我的按钮CommandName是ok啊
      

  3.   

    如果你把你的按钮换成普通 的button了?试验下看看
      

  4.   

    天啊,我发现了个比较郁闷的事情,在朋友给的源吗中我把
    int PKID = Convert.ToInt32(DataGrid1.DataKeys[e.Item.ItemIndex]);
    这个值给TextBox1能够显示数值,但是我从新建立一个页面,代码,方法都引用他原来的,就是得不到PKID值,我是照到人家原代码设置,一切一样,只不过是我另建立了个页面,为什么我的就不行,可能我太苯,不适合搞这个,真TMD郁闷....................................
      

  5.   

    另外你的page_load中对datagrid的邦定是否都放在了!IsPostBack{这里}
      

  6.   

    你的datagrid设置了datakeyfield这个属性了没有啊?
      

  7.   

    if(!IsPostBack)
    {
    //删除记录时显示的提示信息
    this.ImgDel.Attributes.Add("onclick","javascript:return confirm('你能确定要删除此记录吗?');"); BindGrid();
    ControlVisible(false);
    }
      

  8.   

    前台也:
    <%@ Page language="c#" Codebehind="ggggggggggggg.aspx.cs" AutoEventWireup="false" Inherits="BSIT.WebUI.Authority.ggggggggggggg" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>ggggggggggggg</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <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="Form1" method="post" runat="server">
    <FONT face="宋体">
    <asp:DataGrid id="dgMenu" style="Z-INDEX: 103; LEFT: 8px; POSITION: absolute; TOP: 112px" runat="server"
    DataKeyField="ID" AutoGenerateColumns="False" Width="98%" CellPadding="3" CellSpacing="1"
    BorderColor="White" BorderWidth="0px" BackColor="#247165" CssClass="text">
    <ItemStyle BackColor="White"></ItemStyle>
    <HeaderStyle HorizontalAlign="Center" BackColor="#6DA7E1"></HeaderStyle>
    <Columns>
    <asp:BoundColumn DataField="ID" HeaderText="ID"></asp:BoundColumn>
    <asp:BoundColumn DataField="名称" HeaderText="名称"></asp:BoundColumn>
    <asp:BoundColumn DataField="连接" HeaderText="连接"></asp:BoundColumn>
    <asp:TemplateColumn HeaderText="选择">
    <ItemStyle Wrap="False" HorizontalAlign="Center"></ItemStyle>
    <HeaderTemplate>
    <FONT face="宋体"></FONT>
    </HeaderTemplate>
    <ItemTemplate>
    <asp:ImageButton id="ImageButton1" runat="server" CommandName="sss" CausesValidation="False" ImageUrl="../Image/tu004.gif"></asp:ImageButton>
    </ItemTemplate>
    <EditItemTemplate>
    <FONT face="宋体"></FONT>
    </EditItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
    </asp:DataGrid>
    <asp:TextBox id="TextBox1" style="Z-INDEX: 102; LEFT: 328px; POSITION: absolute; TOP: 16px" runat="server"></asp:TextBox></FONT>
    </form>
    </body>
    </HTML>
      

  9.   

    你这是不是页面传值???如果是问题就出在DataGrid中~在DataGrid属性生成器里javascript:varwin=window.open('detail.aspx?PKID={0}',null,'width=300,height=200');window.Close();弹出的页面接收PKID值int PKID = Convert.ToInt32(DataGrid1.DataKeys[e.Item.ItemIndex]);
      

  10.   

    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;
    using BSIT.TablesOperator.Authority;
    using BSIT.DataAccess;namespace BSIT.WebUI.Authority
    {
    /// <summary>
    /// ggggggggggggg 的摘要说明。
    /// </summary>
    public class ggggggggggggg : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.DataGrid dgMenu;
    protected System.Web.UI.WebControls.TextBox TextBox1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    if(!IsPostBack)
    {
    BindGrid();
    }

    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.dgMenu.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgMenu_ItemCommand);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    private void BindGrid()
    {
    BSIT.BusinessFacade.Authority.MenuManage mm = new BSIT.BusinessFacade.Authority.MenuManage(); DataSet dst = mm.GetMenu();
    // lpFunction.DataBind(dst,"dgMenu");
    dgMenu.DataSource = dst;
    dgMenu.DataBind(); }
    /// <summary>
    /// 
    /// </summary>
    /// <param name="source"></param>
    /// <param name="e"></param>
    private void dgCeshi_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {





    } private void dgMenu_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    if(e.CommandName=="sss")
          TextBox1.Text = dgMenu.DataKeys[e.Item.ItemIndex].ToString();
    }
    }
    }
      

  11.   

    请各位朋友帮帮俺.....
    俺先去食堂买点东西吃.....
    thanks
      

  12.   

    jimu8130(荷兰走了,阿根廷走了,巴西走了,英格兰走了,德国走)也,我帮前后太代码都贴出来了.
      

  13.   

    http://my.donews.com/bisou/2006/01/21/%E5%A5%87%E6%80%AA%E7%9A%84datagrid%EF%BC%8C%E4%B8%8D%E8%A7%A6%E5%8F%91itemcommand%E4%BA%8B%E4%BB%B6%EF%BC%81/
      

  14.   


    <asp:ImageButton id="ImageButton1" runat="server" ImageUrl="../images/syts_an006.gif" CommandName="ok"CausesValidation="False"></asp:ImageButton><asp:ImageButton id="ImageButton1" runat="server" ImageUrl="../images/syts_an006.gif" CommandName="Addok"></asp:ImageButton>//****后台
    if(e.CommandName=="Addok")
    {
       .....
    }
      

  15.   

    请问zhangxiaopin(zxp) ,你换个命令名称是什么意图?哪个有关系吗?