我使用控件代码如下:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AllowPaging="True" OnRowCommand="GridView1_RowCommand" >
<Columns>
<asp:BoundField DataField="Bid" HeaderText="编号">
<ItemStyle Font-Size="12px" HorizontalAlign="center"/>
<HeaderStyle Font-Size="12px" />
</asp:BoundField>
<asp:BoundField DataField="Badmin" HeaderText="用户名">
<ItemStyle Font-Size="12px" HorizontalAlign="center"/>
<HeaderStyle Font-Size="12px" />
</asp:BoundField>
<asp:BoundField DataField="logintime" HeaderText="最后登陆时间">
<ItemStyle Font-Size="12px" HorizontalAlign="center"/>
<HeaderStyle Font-Size="12px" />
</asp:BoundField>
<asp:BoundField DataField="LastIP" HeaderText="最后登陆IP" >
<ItemStyle Font-Size="12px" HorizontalAlign="center"/>
<HeaderStyle Font-Size="12px" />
</asp:BoundField>
<asp:BoundField DataField="Loginnum" HeaderText="登陆次数" >
<ItemStyle Font-Size="12px" HorizontalAlign="center" />
<HeaderStyle Font-Size="12px" />
</asp:BoundField>
<asp:BoundField DataField="Mlock" HeaderText="锁定/解锁" >
<ItemStyle Font-Size="12px" HorizontalAlign="center" />
<HeaderStyle Font-Size="12px"/>
</asp:BoundField>
<asp:TemplateField HeaderText="操作" ShowHeader="False">
<ItemStyle Font-Size="12px" Width="150px" HorizontalAlign="center" />
<HeaderStyle Font-Size="12px" Width="150px"/>
<ItemTemplate>
<asp:LinkButton ID="Llock" runat="server" CausesValidation="false"
Text="锁/解" CommandName="lock" OnClientClick='confirm("是否要锁/解该帐号?")'></asp:LinkButton>
<asp:LinkButton ID="Lldel" runat="server" CausesValidation="false" Text="删除" CommandName="udelete" OnClientClick='return confirm("是否要删除该帐号?")'></asp:LinkButton>
<asp:LinkButton ID="Lmod" runat="server" CausesValidation="false" Text="修改" CommandName="updateu"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
数据绑定代码:查询语句放到DataTable (大家都会,不要贴代码了啊!,只说怎么绑定了!)
GridView1.DataSource=dt.DefaultView;
GridView1.DataBind();
事件:GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
int index = Convert.ToInt32(e.CommandArgument); //此处报错(说明出错地方,为什么报错?就是我要问的问题!)
GridViewRow row = GridView1.Rows[index];
string sysid = row.Cells[0].Text;
string syslock = row.Cells[5].Text;
if (e.CommandName == "udelete")
{
if (opadmin.DelAdminMsg(sysid))
{
Response.Write("<script language='javascript'>alert('删除用户帐号成功!');</script>");
DataBinder();
}
else
{
Response.Write("<script language='javascript'>alert('删除用户帐号失败!');</script>");
}
}
}
报错信息:用户代码未处理 System.FormatException
Message="输入字符串的格式不正确。"
Source="mscorlib"
StackTrace:
在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
在 System.String.System.IConvertible.ToInt32(IFormatProvider provider)
在 System.Convert.ToInt32(Object value)
在 PerAdmin_Add_AdminUserMsg.GridView1_RowCommand(Object sender, GridViewCommandEventArgs e) 位置 e:\PeripateticismIsland\PerAdmin\Add_AdminUserMsg.aspx.cs:行号 61
在 System.Web.UI.WebControls.GridView.OnRowCommand(GridViewCommandEventArgs e)
在 System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup)
在 System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e)
在 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
在 System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e)
在 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
在 System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e)
在 System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
=========================================================================================
如果把删除放到
<asp:ButtonField ButtonType="Image" CommandName="udelete" ImageUrl="~/Image/delete.jpg" HeaderText="操作" />中,一切正常!
---------------------------------------------
难道放在
<asp:TemplateField HeaderText="操作" ShowHeader="False">
<ItemStyle Font-Size="12px" Width="150px" HorizontalAlign="center" />
<HeaderStyle Font-Size="12px" Width="150px"/>
<ItemTemplate>
<asp:LinkButton ID="Llock" runat="server" CausesValidation="false"
Text="锁/解" CommandName="lock" OnClientClick='confirm("是否要锁/解该帐号?")'></asp:LinkButton>
<asp:LinkButton ID="Lldel" runat="server" CausesValidation="false" Text="删除" CommandName="udelete" OnClientClick='return confirm("是否要删除该帐号?")'></asp:LinkButton>
<asp:LinkButton ID="Lmod" runat="server" CausesValidation="false" Text="修改" CommandName="updateu"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
中就会出现取行问题吗??如果不能取,怎么会提供此列?
望高手指点在<asp:TemplateField >中,GridView1_RowCommand(object sender, GridViewCommandEventArgs e)事件里怎么去取行?
拜谢!!!
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AllowPaging="True" OnRowCommand="GridView1_RowCommand" >
<Columns>
<asp:BoundField DataField="Bid" HeaderText="编号">
<ItemStyle Font-Size="12px" HorizontalAlign="center"/>
<HeaderStyle Font-Size="12px" />
</asp:BoundField>
<asp:BoundField DataField="Badmin" HeaderText="用户名">
<ItemStyle Font-Size="12px" HorizontalAlign="center"/>
<HeaderStyle Font-Size="12px" />
</asp:BoundField>
<asp:BoundField DataField="logintime" HeaderText="最后登陆时间">
<ItemStyle Font-Size="12px" HorizontalAlign="center"/>
<HeaderStyle Font-Size="12px" />
</asp:BoundField>
<asp:BoundField DataField="LastIP" HeaderText="最后登陆IP" >
<ItemStyle Font-Size="12px" HorizontalAlign="center"/>
<HeaderStyle Font-Size="12px" />
</asp:BoundField>
<asp:BoundField DataField="Loginnum" HeaderText="登陆次数" >
<ItemStyle Font-Size="12px" HorizontalAlign="center" />
<HeaderStyle Font-Size="12px" />
</asp:BoundField>
<asp:BoundField DataField="Mlock" HeaderText="锁定/解锁" >
<ItemStyle Font-Size="12px" HorizontalAlign="center" />
<HeaderStyle Font-Size="12px"/>
</asp:BoundField>
<asp:TemplateField HeaderText="操作" ShowHeader="False">
<ItemStyle Font-Size="12px" Width="150px" HorizontalAlign="center" />
<HeaderStyle Font-Size="12px" Width="150px"/>
<ItemTemplate>
<asp:LinkButton ID="Llock" runat="server" CausesValidation="false"
Text="锁/解" CommandName="lock" OnClientClick='confirm("是否要锁/解该帐号?")'></asp:LinkButton>
<asp:LinkButton ID="Lldel" runat="server" CausesValidation="false" Text="删除" CommandName="udelete" OnClientClick='return confirm("是否要删除该帐号?")'></asp:LinkButton>
<asp:LinkButton ID="Lmod" runat="server" CausesValidation="false" Text="修改" CommandName="updateu"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
数据绑定代码:查询语句放到DataTable (大家都会,不要贴代码了啊!,只说怎么绑定了!)
GridView1.DataSource=dt.DefaultView;
GridView1.DataBind();
事件:GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
int index = Convert.ToInt32(e.CommandArgument); //此处报错(说明出错地方,为什么报错?就是我要问的问题!)
GridViewRow row = GridView1.Rows[index];
string sysid = row.Cells[0].Text;
string syslock = row.Cells[5].Text;
if (e.CommandName == "udelete")
{
if (opadmin.DelAdminMsg(sysid))
{
Response.Write("<script language='javascript'>alert('删除用户帐号成功!');</script>");
DataBinder();
}
else
{
Response.Write("<script language='javascript'>alert('删除用户帐号失败!');</script>");
}
}
}
报错信息:用户代码未处理 System.FormatException
Message="输入字符串的格式不正确。"
Source="mscorlib"
StackTrace:
在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
在 System.String.System.IConvertible.ToInt32(IFormatProvider provider)
在 System.Convert.ToInt32(Object value)
在 PerAdmin_Add_AdminUserMsg.GridView1_RowCommand(Object sender, GridViewCommandEventArgs e) 位置 e:\PeripateticismIsland\PerAdmin\Add_AdminUserMsg.aspx.cs:行号 61
在 System.Web.UI.WebControls.GridView.OnRowCommand(GridViewCommandEventArgs e)
在 System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup)
在 System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e)
在 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
在 System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e)
在 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
在 System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e)
在 System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
=========================================================================================
如果把删除放到
<asp:ButtonField ButtonType="Image" CommandName="udelete" ImageUrl="~/Image/delete.jpg" HeaderText="操作" />中,一切正常!
---------------------------------------------
难道放在
<asp:TemplateField HeaderText="操作" ShowHeader="False">
<ItemStyle Font-Size="12px" Width="150px" HorizontalAlign="center" />
<HeaderStyle Font-Size="12px" Width="150px"/>
<ItemTemplate>
<asp:LinkButton ID="Llock" runat="server" CausesValidation="false"
Text="锁/解" CommandName="lock" OnClientClick='confirm("是否要锁/解该帐号?")'></asp:LinkButton>
<asp:LinkButton ID="Lldel" runat="server" CausesValidation="false" Text="删除" CommandName="udelete" OnClientClick='return confirm("是否要删除该帐号?")'></asp:LinkButton>
<asp:LinkButton ID="Lmod" runat="server" CausesValidation="false" Text="修改" CommandName="updateu"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
中就会出现取行问题吗??如果不能取,怎么会提供此列?
望高手指点在<asp:TemplateField >中,GridView1_RowCommand(object sender, GridViewCommandEventArgs e)事件里怎么去取行?
拜谢!!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货