由于错误“无法对System.Int32和System.String执行'='操作,无法重定向。”

时间:2013-11-14 13:55:33

标签: c# asp.net redirect gridview

我对此很新,所以我不明白这里有什么问题。

我在gridview的列中创建了带有事件的按钮,以通过gridview行项参数重定向到另一个Web表单。我收到这个错误 Cannot perform '=' operation on System.Int32 and System.String.

protected void gvAccommodations_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "Open")
    {
        int Id = Convert.ToInt32(e.CommandArgument);
        Response.Redirect("~/Rooms.aspx?Id=" + Id);
    }
}


<asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id">
</asp:BoundField>          
<asp:TemplateField>
    <ItemTemplate>
        <asp:Button ID="btnOdaberi" runat="server" Text="Odaberi" 
                       CommandName="Open" CommandArgument='<%# Bind("Id") %>'/>
        </ItemTemplate>
</asp:TemplateField>

2 个答案:

答案 0 :(得分:0)

您不能将整数加入字符串 - 您必须先使用ToString将其转换为字符串。

所以使用这一行:

Response.Redirect("~/Rooms.aspx?Id=" + Id.ToString());

答案 1 :(得分:0)

protected void gvAccommodations_RowCommand(object sender, GridViewCommandEventArgs e)
{
string id = GridView1.DataKeys[e.RowIndex].Values["ID"].ToString();
if (e.CommandName == "Open")
{
    int Id = Convert.ToInt32(e.CommandArgument);
    Response.Redirect("~/Rooms.aspx?Id=" id);
}
}