PDA

View Full Version : عدم نمایش فیلد در گرید



mahdidabaghi
پنج شنبه 14 دی 1391, 01:09 صبح
سلام به دوستان گل
من یه پروسیجر تو اس کیو ال نوشتم که سه تا فیلد برمیگردونه:name , family , tell
حالا در زمان اجرا وقتی کاربر رو یه دکمه کلیک میکنه گرید رو به این پروسیجر بایند میکنم و اطلاعات توی اون نشون داده میشه.
مشکل اینه من میخوام فقط name , family توی گرید نشون داده بشن و tell رو بتونم توی TextBox نشون بدم.
سپاسگزار میشم راهنمییم بفرمایین

fakhravari
پنج شنبه 14 دی 1391, 12:46 عصر
گرید از نوع تمپلت کنید .
مثال
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="id" DataSourceID="SqlDataSource1" ShowHeader="False"
BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px"
CellPadding="2" ForeColor="Black" GridLines="None">
<AlternatingRowStyle BackColor="PaleGoldenrod" />
<Columns>
<asp:TemplateField>
<ItemTemplate>

Name : <asp:Label ID="Label2" runat="server" Text='<%# Eval("name") %>'></asp:Label><br />
<asp:TextBox runat="server" ID="TextBox1" Text='<%# Eval("nu") %>'></asp:TextBox><br />
ID : <asp:Label ID="Label3" runat="server" Text='<%# Eval("id") %>'></asp:Label><br />
Delete : <asp:CheckBox ID="CheckBox1" runat="server" />

</ItemTemplate>
</asp:TemplateField>
</Columns>

<FooterStyle BackColor="Tan" />
<HeaderStyle BackColor="Tan" Font-Bold="True" />
<PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue"
HorizontalAlign="Center" />
<SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
<SortedAscendingCellStyle BackColor="#FAFAE7" />
<SortedAscendingHeaderStyle BackColor="#DAC09E" />
<SortedDescendingCellStyle BackColor="#E1DB9C" />
<SortedDescendingHeaderStyle BackColor="#C2A47B" />

</asp:GridView>

malloc
پنج شنبه 14 دی 1391, 14:00 عصر
منظورت اینه که name و family و توی گرید ویو نشون بدی . بعد وقتی روی سطر کلیک کرد شماره تلفنشو توی یه تکست باکس نمایش بدی ؟؟؟؟؟

mahdidabaghi
جمعه 15 دی 1391, 14:53 عصر
منظورت اینه که name و family و توی گرید ویو نشون بدی . بعد وقتی روی سطر کلیک کرد شماره تلفنشو توی یه تکست باکس نمایش بدی ؟؟؟؟؟
سلام
از این که دیر جواب میدم عذر میخوام
در جواب سوالتون باید بگم که نمیخوام با کلیک روی سطر تلفن رو توی تکست باکس نشون بدم.
من یه باتن دارم و یک گرید.میخوام وقتی روی باتن کلیک کردم گرید و تکست باکس مورد نظر به اون طریقی که در بالا عرض کردم پر بشن

malloc
جمعه 15 دی 1391, 15:28 عصر
خوب پس شما میخوای textbox رو تو گرید ویو نشون بدی و یجورایی امکان ویرایش شماره موبایل و واسش قرار بدی .

حالا من یه نمونه از اونچیزی که فهمیدم میسازم واست میزارم ببین به کارت میاد .
میدونم مثال ساده ای دارم میزارم واست اما شاید یه نکته ای رو واست روشن کنه و کارت راه بیافته
97834

mahdidabaghi
جمعه 15 دی 1391, 18:16 عصر
ممنون از پاسخ شما
متاسفانه الان سیستم من ویژوال رو باز نمیکنه.:گریه:
ولی منم امیدوارم با سمپل شما مشکلم برطرف شه.ولی من نمیخوام تسکت باکس رو توی گرید نشون بدم.
همونجور که عرض کردم با کلیک روی باتن گرید به پروسیجری که اینجوری تعریف شده بایند میشه :

select * from tbl_test
که این تیبل دارای فیلدهای name , family , tell هست.
خوب در اینصورت با فشرده شدن دکمه این سه ستون در گریدویو نشون داده میشن.حالا من میخوام در زمان اجرا فقط دو ستون name و family در گرید نشون داده بشن و tell در تکست باکس نشون داده بشه(شما فرض رو بر این بگیر که فقط یک رکورد تو این تیبل ذخیره شده)
به صورت ساده تر ستون tell در زمان اجرا از گرید حذف بشه(یا مخفی بشه) و اظلاعات این ستون مخفی توی تکست باکس نشون داده بشه.
ببخشید اگه سرتون رو درد اوردم.حالا نمیدونم ایا سمپل شما هم همین کار رو میکنه یا نه.ولی بازم یه دنیا ممنون.

malloc
جمعه 15 دی 1391, 18:48 عصر
والا الان نکته اصلی اون textbox هست که من زیاد کارشو و دلیل حضورشو متوجه نمیشم . اما فکر میکنم مثالم یچیزهایی و واستون روشن کنه . هرچند تو مثال من textbox توی گرید ویو هست اما آوردنش بیرون از گرید ویو کاره سختی نیست

mahdidabaghi
جمعه 15 دی 1391, 19:17 عصر
ممنون مهندس
ببخشید که اینقد زحمت دادمت
ولا این صحبتی که تو مثال بالا کردم یه سمپل بود وگرنه کار من چیز دیگه ای
بگذریم.میشه بفرمایین چجوری میشه ستونی از گریدویو رو در زمان اجرا مخفی کرد.(با کد نویسی نه بصورت ویزاردی)
سپاس از شما

malloc
جمعه 15 دی 1391, 19:46 عصر
با دستور زیر میتونی یه ستونو در حین اجرا مخفی کنی :

GridView1.Columns[2].Visible = false;

mahdidabaghi
شنبه 16 دی 1391, 00:37 صبح
ممنون مهندس
منم این کد رو کهاز یک سایت خارجی پیدا کردم به صورت کاملتر واسه سایر دوستان قرار میدم:

GridView1.DataBind(); if (GridView1.Columns.Count > 0) GridView1.Columns[0].Visible = false; else { GridView1.HeaderRow.Cells[0].Visible = false; foreach (GridViewRow gvr in GridView1.Rows) { gvr.Cells[0].Visible = false; } }