在我的程序中,我有一个列表视图,我用数据库中的数据填充它,并选择一个列表视图项目,我被重定向到一个页面,在该页面中将创建第二个列表视图并根据id填充在第一个列表视图中选择的项目。此ID是通过第一个列表视图中的超链接获得的:
<%#Eval(“CategoryName”)%>
填充第二个列表视图的代码如下:
public partial class SubCategories : System.Web.UI.Page
{
BASubCategory bs = new BASubCategory();
void BindListView()
{
Guid cID = (Guid)ViewState["CatID"];
List<SubCategory> subcatlist = (List<SubCategory>)bs.GetSubCategoryCategory(cID);
SubCategoryListView.DataSource = subcatlist;
SubCategoryListView.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
ViewState["CatID"] = Request["id"];
BindListView();
}
}
当我尝试运行此操作时,我在以下位置获得错误:
Guid cID =(Guid)ViewState [“CatID”];
我收到错误 “指定的演员表无效”
有人可以提出一些建议来解决这个问题吗?
答案 0 :(得分:0)
你可以尝试:
Guid cID = new Guid(ViewState["CatID"].ToString());
ViewState似乎返回一个无法强制转换为Guid的对象。如果您尝试以上操作,您应该能够从ViewState中“CatID”的字符串表示轻松创建Guid。
另外,在回复下面的评论时,为什么不试试这个而不是<asp:HyperLink>
:
<a href='<%# ResolveClientUrl("~/SubCategories.aspx") %>?id=<%#Eval("CategoryId") %>'><%#Eval("CategoryName")%></a>