javadaskari
دوشنبه 03 اسفند 1388, 13:55 عصر
سلام دوستان
من یه GridView دارم که اطلاعاتی را از DB خوانده و درست نمایش میدهد.
یک ستون به نام نمایش جزئیات در ان قرار دادم که با کلیک روی آن میخوم به صفحه دیگری بره البته به همراه فیلد کلید که آن را با Session ارسال میکنم خب بگذریم من کنترل گرید را به صورت زیر در فرم وب قرار دادم البته قبلش به خصوصیت DataSource گریدویو یک دیتا تیبل اضافه و اطلاعات را بایند کردم :
<asp:GridView ID="GridView2" runat="server" AllowPaging="True"
onload="GridView2_Load" AutoGenerateColumns="False"
onpageindexchanging="GridView2_PageIndexChanging"
onrowcommand="GridView2_RowCommand"
ShowFooter="True" DataKeyNames="ID" onrowcreated="GridView2_RowCreated"
onrowdeleted="GridView2_RowDeleted">
<Columns>
<asp:TemplateField HeaderText="ردیف" >
<ItemTemplate>
<asp:Literal ID="litRowNumberNormal" runat="server"></asp:Literal>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:BoundField HeaderText="شماره" DataField="ID" />
<asp:BoundField HeaderText="قبض" DataField="Sh_Ghabz" />
<asp:BoundField HeaderText="خودرو" DataField="Khodro" />
<asp:BoundField HeaderText="رنگ" DataField="Rang" />
<asp:TemplateField HeaderText="مشاهده جزئیات">
<ItemTemplate>
<asp:Button runat="server" ID="btnDetail" Text="showDetail" CommandName="ShowDetail" CommandArgument='<%# Bind("ID") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
حالا در رویداد RunCommand این کد را نوشتم:
protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "ShowDetail")
{
Session.Add("ShowDetail", e.CommandArgument);
Response.Redirect("WebForm4.aspx");
}
}
حالا موقع اجرا اطلاعات به خوبی نمایش داده میشود ولی با کلیک روی ستون های نمایش جزئیات یک چنین پیغامی میاد :
Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
مشکل کجاست؟
من یه GridView دارم که اطلاعاتی را از DB خوانده و درست نمایش میدهد.
یک ستون به نام نمایش جزئیات در ان قرار دادم که با کلیک روی آن میخوم به صفحه دیگری بره البته به همراه فیلد کلید که آن را با Session ارسال میکنم خب بگذریم من کنترل گرید را به صورت زیر در فرم وب قرار دادم البته قبلش به خصوصیت DataSource گریدویو یک دیتا تیبل اضافه و اطلاعات را بایند کردم :
<asp:GridView ID="GridView2" runat="server" AllowPaging="True"
onload="GridView2_Load" AutoGenerateColumns="False"
onpageindexchanging="GridView2_PageIndexChanging"
onrowcommand="GridView2_RowCommand"
ShowFooter="True" DataKeyNames="ID" onrowcreated="GridView2_RowCreated"
onrowdeleted="GridView2_RowDeleted">
<Columns>
<asp:TemplateField HeaderText="ردیف" >
<ItemTemplate>
<asp:Literal ID="litRowNumberNormal" runat="server"></asp:Literal>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:BoundField HeaderText="شماره" DataField="ID" />
<asp:BoundField HeaderText="قبض" DataField="Sh_Ghabz" />
<asp:BoundField HeaderText="خودرو" DataField="Khodro" />
<asp:BoundField HeaderText="رنگ" DataField="Rang" />
<asp:TemplateField HeaderText="مشاهده جزئیات">
<ItemTemplate>
<asp:Button runat="server" ID="btnDetail" Text="showDetail" CommandName="ShowDetail" CommandArgument='<%# Bind("ID") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
حالا در رویداد RunCommand این کد را نوشتم:
protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "ShowDetail")
{
Session.Add("ShowDetail", e.CommandArgument);
Response.Redirect("WebForm4.aspx");
}
}
حالا موقع اجرا اطلاعات به خوبی نمایش داده میشود ولی با کلیک روی ستون های نمایش جزئیات یک چنین پیغامی میاد :
Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
مشکل کجاست؟