PDA

View Full Version : نمایش بعضی ستونهای دیتاگرید با وجود شرطهایی



c#_web
چهارشنبه 01 آذر 1385, 12:51 عصر
من در برنامه ام یک دیتاگرید دارم که حدود 20 فیلد مختلف را در خوددارد و هنگام اجراآنها را پر شده نشان میدهد. حالا میخواهم یک صفحه تنظیمات داشته باشم تا در آن هر شخص برای خودش مشخص کند کدام ستونها برایش نمایش داده شوند نه همه 20 فیلد.
که البته این موارد در دیتابیس ذخیره میشوند.(ستونهای درخواستی هر فرد)
یعنی میخواهم براساس تقاضای هر فرد یکسری ستونها را نشان ندهد و ستونهای مورد نیازش را نشان دهد.
برای اینکار آیا باید در کد html مربوطه ، کد بنویسم و شرطها را بررسی کنم ؟؟؟که اگر فلان شرط برقرار بود آن ستون را نشان دهد یا ندهد.
یا اینکه جداگانه برای هر فرد با توجه به ستونهای درخواستی اش یک دیتاگرید با ستونهای مورد نظرش ایجاد کنم؟؟؟؟
کدام این راهها درست است؟؟؟ و روش انجام کار چگونه است؟؟؟
در زیر یک مثال از کد html مربوطه برای یک دیتاگرید که 2 ستون دارد وجود دارد.


<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" runat="server"
AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn DataField="person_do" HeaderText="شخص انجام دهنده"></asp:BoundColumn>
<asp:BoundColumn DataField="time_do_work" HeaderText="زمان کار"></asp:BoundColumn>
</Columns>
</asp:DataGrid>



آیا میتوان در همین خطوط کد، برای آنها شرط گذاشته و اگر شرط برقرار بود آن ستون را نمایش دهد؟؟؟ اینکار چگونه است؟؟؟؟

صابر
چهارشنبه 01 آذر 1385, 15:55 عصر
در قسمت تنظیمات هر شخص لابد نام ستونها را مشخص میکنید و نام این ستونها جایی ذخیره میشوند.
بهترین کار به نظر من این است که با توجه به اینکه چه کاربری صفحه شما را باز کرده است، ستونهای مخصوص آن کاربر (یا گروه کاربری) از جدول شما select شوند و به دیتاگرید بایند شوند.

c#_web
شنبه 04 آذر 1385, 12:23 عصر
شاید منظورم را درست بیان نکرده باشم . منظورم اینه که وقتی یک دیتاگریدایجادمیکنیم در قسمت design از آن ستونها راایجاد و فیلد آنها را مشخص میکنیم.
که در قسمت
DataField="person_do" میتوان فیلدی که به آن ستون از دیتاگرید بایندکرده را مشخص کرد و توسط
HeaderText="شخص انجام دهنده" میتوان سر ستون ، از ستون موردنظر رابه فارسی مشخص کرد.
حالا اگر طبق گفته صابر عمل کنم و 10 فیلد در دیتاگرید تعریف کرده باشم ، اگر توسط کابری 5 فیلد رابخواهم نشان دهم خطا میدهد که آن5 فیلد دیگر دردیتاست وجود ندارد.
چگونه میتوانم بر اساس درخواست کاربر فقط فیلدهای خاص خودش را نشان دهم؟؟؟:متفکر:

صابر
شنبه 04 آذر 1385, 17:40 عصر
لطفاً قسمتهایی از کدتون رو (که فکر میکنین لازمه) بفرستین.
اما چیزی که به نظر بدیهی میرسه اینه که توی محیط کد این قضیه رو حل کنید و از محیط design کمتر استفاده کنید.

memimo
شنبه 04 آذر 1385, 17:43 عصر
خب DataGrid رو با کد زمان Runtime درست کن.