PDA

View Full Version : مبتدی: ستون نمایش جزئیات در GridView



javadaskari
دوشنبه 03 اسفند 1388, 12: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.



مشکل کجاست؟

s_d_65
دوشنبه 03 اسفند 1388, 13:16 عصر
توقسمت properties گریدت datakeyname رو وارد کردی؟

javadaskari
دوشنبه 03 اسفند 1388, 15:33 عصر
بله دوست عزيز اگه دقت کرده بودي در کد بالا DataKeyNames را برابر فيلد ID قرار داده ام.

s_d_65
سه شنبه 04 اسفند 1388, 09:24 صبح
ببینید من راسه کاری که شما میگید یک commandfield (select ) اضافه کردم تکستشو کردم مشاهده جزئیات بعد تورویداد selectedindexchange واسش کد نوشتم و gridview1.selectedvalue رو بدست اوردم پاس دادم به صفحه بعد اگه خاستی امتخانش کن واسه من جواب داد