온라인 상점 웹 사이트를 만들고 싶습니다.키가있는 채워진 격자보기를 세션에서 가져 오는 방법
내 사이트에서 내 제품을 보여주는 데이터리스트를 만들었습니다. 사용자가 선택한 장바구니에 제품의 productID를 가져 오는 데 LinkButton을 배치했습니다.
<asp:LinkButton ID="LinkButton1" runat="server" Text="Add To Cart" CommandName="addtocart" CommandArgument='<%# Eval("id")%>' >
이 때 사용자가하는 LinkButton이 이벤트가 발생하십시오
protected void theDataList_ItemCommand(object source, DataListCommandEventArgs e)
{
//this add the selected product-id to the list<int> and put it in the
// session["addtocart"]
if (e.CommandName == "addtocart")
{
int productid = Convert.ToInt32(e.CommandArgument);
Label6.Text = productid.ToString();
List<int> productsincart = (List<int>)Session["addtocart"];
if (productsincart == null)
{
productsincart = new List<int>();
}
productsincart.Add(productid);
Session["addtocart"] = productsincart;
}
을 그 후 사용자가 텍스트가 "쇼 쇼핑 카트"입니다의 버튼을 클릭하면, 사용자는 shoppingCart가 표시됩니다. 이 페이지에서 aspx 페이지
Response.Redirect("shoppingcart.aspx");
난있는 gridview를하고 난 세션 [ "addToCart와"]에 바인딩 할; 페이지로드 gridview 해당 ID가 세션 [ "카트"] 에있는 선택한 제품을 표시하지만 작동하지 않고이 오류가 발생했습니다 : System.InvalidCastException : Object IConvertible을 구현해야합니다.
이 관련 코드입니다 : 나는 문제가 GridView3 및 세션 관련이 알고
<asp:GridView ID="GridView3" runat="server"
DataSourceID="SqlDataSource1" >
<columns>
<asp:BoundField DataField="id" HeaderText="id" SortExpression="id" />
<asp:BoundField DataField="name" HeaderText="post" SortExpression="post" />
<asp:BoundField DataField="price" HeaderText="salary"
SortExpression="salary" />
<asp:BoundField DataField="color" HeaderText="years" SortExpression="years" />
</columns>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:employeeConnectionString4 %>"
SelectCommand="SELECT * FROM [products] WHERE ([productid] = @productid)">
<SelectParameters>
<asp:SessionParameter DefaultValue="7" Name="cart" SessionField="cart"
Type="Int32" />
</SelectParameters>
[ "addToCart와"는, 나는 GridView3는 정수 목록 객체에서 값을 변환 할 수 없습니다 생각하는 세션 [ "addtocart"] 정수에 저장됩니다, 세션 개체에서 정수 목록으로 변환 오류가 나올 것 같아요하지만 어떤 몸이 도움이 될 경우이 문제를 해결하는 방법을 알고 있습니다. 너무 감사합니다.
세션의 개체 [ "cart"]는 사용자가 구입하도록 선택한 productsid 목록을 포함하는 정수 목록입니다. 이 오류는 다음과 같습니다.
Object는 IConvertible을 구현해야합니다. 설명 : 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 오류 및 코드에서 시작된 위치에 대한 자세한 정보는 스택 추적을 검토하십시오.
예외 세부 정보 : System.InvalidCastException : Object IConvertible을 구현해야합니다.
소스 오류 :
처리되지 않은 예외가 현재 웹 요청을 실행하는 동안 생성되었습니다. 예외의 출처와 위치에 관한 정보는 아래의 예외 스택 추적을 사용하여 식별 할 수 있습니다.
스택 추적은 :
[InvalidCastException: Object must implement IConvertible.]
System.Convert.ChangeType(Object value, TypeCode typeCode, IFormatProvider provider) +2880621
System.Web.UI.WebControls.Parameter.GetValue(Object value, String defaultValue, TypeCode type, Boolean convertEmptyStringToNull, Boolean ignoreNullableTypeChanges) +141
System.Web.UI.WebControls.Parameter.GetValue(Object value, Boolean ignoreNullableTypeChanges) +63
System.Web.UI.WebControls.ParameterCollection.GetValues(HttpContext context, Control control) +301
System.Web.UI.WebControls.SqlDataSourceView.InitializeParameters(DbCommand command, ParameterCollection parameters, IDictionary exclusionList) +264
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +472
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +19
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +142
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73
System.Web.UI.WebControls.GridView.DataBind() +4
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +72
System.Web.UI.Control.EnsureChildControls() +87
System.Web.UI.Control.PreRenderRecursiveInternal() +44
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842
다음 사항을 알려주십시오. 1) 장바구니 객체가 무엇인지, 2) 오류가 발생한 코드 (특정 행). 코드를 살펴보면 문제가 SqlDataSource에있는 것처럼 보입니다. 그리드보기가 아닙니다. –
세션의 개체 [ "cart"]는 사용자가 구매하도록 선택한 productsid 목록을 포함하는 정수 목록입니다. –