我的页面代码如下,我要如何写TitleList_ItemCommand事件才能获取DataKeyDield的值来进行修改和删除呢?????<asp:DataGrid ID="TitleList" runat="server" CssClass="GbText" AutoGenerateColumns="False" CellPadding="4" ForeColor="White" GridLines="None" Width="100%" OnItemCommand="TitleList_ItemCommand" OnItemDataBound="TitleList_ItemDataBound" DataKeyField="ID_">
<Columns>
<asp:TemplateColumn HeaderText="操作" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="17%" ItemStyle-BorderWidth="1" ItemStyle-BorderColor="Blue"><ItemTemplate>
<asp:Button ID="UpdateTitle" Runat="server" CommandName="update" CssClass="ButtonCss" Text="修改" Width="30" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ID_")%>'></asp:Button>
<asp:Button ID="DeleteTitle" Runat="server" CommandName="delete" CssClass="ButtonCss" Text="删除" Width="30" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ID_")%>'></asp:Button>
</ItemTemplate></asp:TemplateColumn>
</Columns>
</asp:DataGrid>
我的后台代码如下: protected Guid nPID_ = Guid.NewGuid();
public Guid nID_ = Guid.NewGuid();
protected void Page_Load(object sender, EventArgs e)
{if (Request.Params["PID_"] != null)
{nPID_ = new Guid(Request.Params["PID_"].ToString());}
if (!Page.IsPostBack)
{
BindTitleData(nPID_);}}
public void BindTitleData(Guid nPID_)
{Title title = new Title();
SqlDataReader rect = title.GetTitleByClass(nPID_);
if (rect == null) return;
TitleList.DataSource = rect;
TitleList.DataBind();
rect.Close();
}
protected void TitleList_ItemCommand(object source, DataGridCommandEventArgs e)
{string nnID_ = this.TitleList.DataKeyField.ToString();///......这一句要如何写?
if (e.CommandName.ToLower() == "update")
{
this.Response.Redirect("UpdateKulturTitle.aspx?ID_="+nnID_);
}
else
{
if (e.CommandName.ToLower() == "delete")
{
nID_ = new Guid(nnID_);///.......这一句要如何写呢?
DeleteTitle(nID_);///这一句的代码我已经知道怎么写,只是在后面没有加上来。
}
else
{
Response.Write("<script>window.alert('数据错误')</script>");
return;
}
}
}
protected void DeleteTitle(Guid nID_)
{
}
protected void TitleList_ItemDataBound(object sender, DataGridItemEventArgs e)
{
Button updateButton = (Button)e.Item.FindControl("UpdateTitle");
Button deleteButton = (Button)e.Item.FindControl("DeleteTitle");
if (deleteButton != null)
{deleteButton.Attributes.Add("onclick", "return confirm(;" + ASPNET2System.OPERATIONDELETEMESSAGE + "');");
}
}
}
<Columns>
<asp:TemplateColumn HeaderText="操作" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="17%" ItemStyle-BorderWidth="1" ItemStyle-BorderColor="Blue"><ItemTemplate>
<asp:Button ID="UpdateTitle" Runat="server" CommandName="update" CssClass="ButtonCss" Text="修改" Width="30" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ID_")%>'></asp:Button>
<asp:Button ID="DeleteTitle" Runat="server" CommandName="delete" CssClass="ButtonCss" Text="删除" Width="30" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ID_")%>'></asp:Button>
</ItemTemplate></asp:TemplateColumn>
</Columns>
</asp:DataGrid>
我的后台代码如下: protected Guid nPID_ = Guid.NewGuid();
public Guid nID_ = Guid.NewGuid();
protected void Page_Load(object sender, EventArgs e)
{if (Request.Params["PID_"] != null)
{nPID_ = new Guid(Request.Params["PID_"].ToString());}
if (!Page.IsPostBack)
{
BindTitleData(nPID_);}}
public void BindTitleData(Guid nPID_)
{Title title = new Title();
SqlDataReader rect = title.GetTitleByClass(nPID_);
if (rect == null) return;
TitleList.DataSource = rect;
TitleList.DataBind();
rect.Close();
}
protected void TitleList_ItemCommand(object source, DataGridCommandEventArgs e)
{string nnID_ = this.TitleList.DataKeyField.ToString();///......这一句要如何写?
if (e.CommandName.ToLower() == "update")
{
this.Response.Redirect("UpdateKulturTitle.aspx?ID_="+nnID_);
}
else
{
if (e.CommandName.ToLower() == "delete")
{
nID_ = new Guid(nnID_);///.......这一句要如何写呢?
DeleteTitle(nID_);///这一句的代码我已经知道怎么写,只是在后面没有加上来。
}
else
{
Response.Write("<script>window.alert('数据错误')</script>");
return;
}
}
}
protected void DeleteTitle(Guid nID_)
{
}
protected void TitleList_ItemDataBound(object sender, DataGridItemEventArgs e)
{
Button updateButton = (Button)e.Item.FindControl("UpdateTitle");
Button deleteButton = (Button)e.Item.FindControl("DeleteTitle");
if (deleteButton != null)
{deleteButton.Attributes.Add("onclick", "return confirm(;" + ASPNET2System.OPERATIONDELETEMESSAGE + "');");
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货