我用dataview显示数据,使用了模板列,在我调用命令的时候,使用了如何代码,
dataview的datakeynames值:“ID”,Id的类型是“int”类型,
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
//int index = Convert.ToInt32(e.CommandArgument);
int index = Convert.ToInt32(e.CommandArgument);(从这个位置报如下错误:输入字符串的格式不正确。)
if (e.CommandName == "ck")
{
Response.Redirect("../zs/particular.aspx?id=" + index);
}
}
可是总是报下的错误,不知道为什么,在我的其它页面中就没有发生这种情况
输入字符串的格式不正确。
dataview的datakeynames值:“ID”,Id的类型是“int”类型,
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
//int index = Convert.ToInt32(e.CommandArgument);
int index = Convert.ToInt32(e.CommandArgument);(从这个位置报如下错误:输入字符串的格式不正确。)
if (e.CommandName == "ck")
{
Response.Redirect("../zs/particular.aspx?id=" + index);
}
}
可是总是报下的错误,不知道为什么,在我的其它页面中就没有发生这种情况
输入字符串的格式不正确。
e.CommandArgument
吗.
你错在在触发别的command的时候也会进入这个事件处理.比如你点Edit后也会进来.这时候参数就不是整数了.
那我怎么改呀,
谢谢
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "ck")
{
int index = Convert.ToInt32(e.CommandArgument);
Response.Redirect("../zs/particular.aspx?id=" + index);
}
}
因为没有击发e.CommandArgument所在的按扭事件,e.CommandArgument应该是空的
DataKeyNames="id" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowCommand="GridView1_RowCommand"
PageSize="17">
<FooterStyle CssClass= "GridViewFooterStyle " />
<RowStyle CssClass= "GridViewRowStyle " />
<SelectedRowStyle CssClass= "GridViewSelectedRowStyle " />
<PagerStyle CssClass= "GridViewPagerStyle " />
<AlternatingRowStyle CssClass= "GridViewAlternatingRowStyle " />
<HeaderStyle CssClass= "GridViewHeaderStyle " />
<Columns>
<asp:BoundField DataField="通知书号" HeaderText="通知书号" />
<asp:BoundField DataField="姓名" HeaderText="姓名" />
<asp:BoundField DataField="性别" HeaderText="性别" />
<asp:BoundField DataField="系名" HeaderText="系名" />
<asp:BoundField DataField="录取专业" HeaderText="录取专业" />
<asp:BoundField DataField="考生成绩" HeaderText="考生成绩" />
<asp:TemplateField HeaderText="查看">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="ck">查看</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>这是CS代码
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
int index = Convert.ToInt32(e.CommandArgument);
if (e.CommandName == "ck")
{
Response.Redirect("../zs/particular.aspx?id=" + index);
}
}
完成功能就是详细查看页面
if (e.CommandName == "ck")
{
//code }
但是只有模板列是butten时才能存在 如果是select类型就没有CommandArgument
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "ck")
{
int rowIndex = ((GridViewRow)((LinkButton)e.CommandSource).NamingContainer).RowIndex;
string index = gvGuaHaoDan.DataKeys[rowIndex].Value.ToString();
Response.Redirect("../zs/particular.aspx?id=" + index);
}
}