关于gridview里button事件的问题。。。。。 我现在gridview里有button然后用RowCommand这个事件判断他的commandname然后点击现在问题我很多行都有button怎么区别每一行的呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 写个for循环, 类似于全选的那种.. 或者不用RowCommand这个事件 <asp:LinkButton ID="linkbt_repertory" runat="server" CommandName="repertory" CommandArgument='<%# Eval("P_ID") %>'>库存管理</asp:LinkButton>//RowCommand事件 if (e.CommandName == "repertory") { Response.Redirect("Shop_Present_Repertory.aspx?ID=" + e.CommandArgument.ToString()); //我这是跳转,你可以写操作事件 } <asp:LinkButton ID="linkbt_repertory" runat="server" CommandName='<%# Eval("P_ID") %>' >库存管理</asp:LinkButton>RowCommand事件 e.CommandName.ToString() 最简单的办法是将Button的CommandName设置为Select,在GridView的SelectedChanged事件中通过RowIndex区分!! 绑定CommandArgument="<%# Container.DataItemIndex %>"后台代码里面Rows[Convert.ToInt32(e.CommandArgument)]就能找到时那一行了。 用 CommandArgument 绑个ID 4楼貌似不是吧 不是跳转这个我好像查到了 <%# Container.DataItemIndex %>" 这是什么? 在设计界面button中添加 commandName='<%#Eval("主键") %>'在RowCommand时件里 e.commandName就是当前行的主键。 麻烦说详细一点我就是这么做的 我这行里有textbox和button两个东西 e.CommandArgument就是行号(string),不过是object的string s=e.CommandArgument as string;int rowIndex=Int32.Parse(s); 先在前台 绑定一下:CommandArgument=" <%# Container.DataItemIndex %>" 然后再使用:int index = covert.int32(e.CommandArgument) <asp:GridView ID="gvBranch" CssClass="headerCenter" runat="server" OnRowCommand="gvBranch_RowCommand" OnRowDataBound="gvBranch_RowDataBound" AutoGenerateColumns="False" DataKeyNames="BranchId" Width="98%" CellPadding="4" ForeColor="#333333" GridLines="None"> <asp:TemplateField HeaderText="删除"> <ItemTemplate> <asp:ImageButton ID="imgbtnDelete" runat="server" ImageUrl="~/Images/delete.gif" AlternateText="删除" CausesValidation="false" CommandArgument='<%#Eval("BranchId") %>' CommandName="De" /> </ItemTemplate> </asp:TemplateField>参考参考下吧 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ViewState["editFlag"] = "0";//进入Edit的标志,1-进入,0-没进入 ViewState["editNo"] = "-1"; //获得当前编辑的行号,-1没有获得 } } protected virtual void OnRowCommand(Object sender, GridViewCommandEventArgs e) { if (e.CommandName.ToString() == "Edit") { ViewState["editFlag"] = "1";//设置进入编辑 ViewState["editNo"] = e.CommandArgument.ToString();//获得当前编辑的行号 } else if (e.CommandName.ToString() == "Cancel" || e.CommandName.ToString() == "Update") ViewState["editFlag"] = "0"; } if (e.CommandName == "yuxl") { Response.Redirect("~/UserDetails.aspx?id=" + e.CommandArgument); }在按钮事件里判断是不是按了这按钮,如果是就执行,<asp:Button ID="Button1" runat="server" CommandArgument='<%# Eval("Id") %> ' OnClick="Button1_Click" Text="详细" CommandName="yuxl" OnCommand="Button1_Command" />在按钮的CommandArgument属性里写上要传的id,CommandName给按钮取个名称 如何让一个控件在弹出的时候显示在另一个控件上面。 如何下载文件夹内的word文件,文件名称存放在数据库中 sql语句问题 ASP.NET2.0创建的WEB项目怎么找不到web.config\AssemblyInfo.cs和Global.asax文件? 设计开发问题 急 在线等 GRIDVIEW 如何超链接,急!!! 简单问题,DataSet的,把两个表的数据放在一个DataSet里面 ASP.NET页面显示不全 新手,System.StackOverflowException 错误 买书,给个建议! 删除事件里面可以用对话框吗? SESSION页面之间传递变量的问题
写个for循环, 类似于全选的那种..
或者不用RowCommand这个事件
<asp:LinkButton ID="linkbt_repertory" runat="server" CommandName="repertory" CommandArgument='<%# Eval("P_ID") %>'>库存管理</asp:LinkButton>
//RowCommand事件
if (e.CommandName == "repertory")
{
Response.Redirect("Shop_Present_Repertory.aspx?ID=" + e.CommandArgument.ToString());
//我这是跳转,你可以写操作事件
}
<asp:LinkButton ID="linkbt_repertory" runat="server" CommandName='<%# Eval("P_ID") %>' >库存管理</asp:LinkButton>RowCommand事件
e.CommandName.ToString()
在GridView的SelectedChanged事件中通过RowIndex区分!!
后台代码里面Rows[Convert.ToInt32(e.CommandArgument)]就能找到时那一行了。
这是什么?
在RowCommand时件里 e.commandName就是当前行的主键。
麻烦说详细一点我就是这么做的
我这行里有textbox和button两个东西
int rowIndex=Int32.Parse(s);
然后再使用:int index = covert.int32(e.CommandArgument)
<asp:GridView ID="gvBranch" CssClass="headerCenter" runat="server" OnRowCommand="gvBranch_RowCommand"
OnRowDataBound="gvBranch_RowDataBound" AutoGenerateColumns="False" DataKeyNames="BranchId"
Width="98%" CellPadding="4" ForeColor="#333333" GridLines="None">
<asp:TemplateField HeaderText="删除">
<ItemTemplate>
<asp:ImageButton ID="imgbtnDelete" runat="server" ImageUrl="~/Images/delete.gif"
AlternateText="删除" CausesValidation="false" CommandArgument='<%#Eval("BranchId") %>'
CommandName="De" />
</ItemTemplate>
</asp:TemplateField>参考参考下吧
{
if (!IsPostBack)
{
ViewState["editFlag"] = "0";//进入Edit的标志,1-进入,0-没进入
ViewState["editNo"] = "-1"; //获得当前编辑的行号,-1没有获得
}
} protected virtual void OnRowCommand(Object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.ToString() == "Edit")
{
ViewState["editFlag"] = "1";//设置进入编辑
ViewState["editNo"] = e.CommandArgument.ToString();//获得当前编辑的行号
}
else if (e.CommandName.ToString() == "Cancel" || e.CommandName.ToString() == "Update")
ViewState["editFlag"] = "0";
}
{
Response.Redirect("~/UserDetails.aspx?id=" + e.CommandArgument);
}
在按钮事件里判断是不是按了这按钮,如果是就执行,<asp:Button ID="Button1" runat="server" CommandArgument='<%# Eval("Id") %> ' OnClick="Button1_Click" Text="详细" CommandName="yuxl" OnCommand="Button1_Command" />
在按钮的CommandArgument属性里写上要传的id,CommandName给按钮取个名称