PDA

View Full Version : حفظ ظاهر دیتاگرید



ehsan#baharangiz
جمعه 12 مهر 1392, 20:44 عصر
سلام من یه جدول پیام دارم که با دیتا گرید پیام ها رو نشان میدم و داخل جدول یه فیلد در نظر گرفتم که هنگام درج پیام مقدار 0 میگیره و با انتخاب سطر در دیتا گرید اون فیلد مقدار1 میگیره این برای اینه که دخل دیتا گرید اونهایی که مقدار 0 دارن رو با فونت بزرگتر نشان بدم تا معلوم شه کلیک نشده حالا من برای این کار مشکلی ندارم فقط وقتی امکان صفحه بندی رو به دیتا گرید اضافه میکنم بار اول پیام هارو خوب نشان میده ولی وقتی رو صفحات کلیک میکنم همه رو باز شده نشان میده.ممنون میشم اگه کسی بگه چکار باید بکنم برای رفع این مشکل.

mahdioo12194
جمعه 12 مهر 1392, 20:50 عصر
به احتمال زیاد تو بایندت مشکل داری؟!!

ehsan#baharangiz
جمعه 12 مهر 1392, 20:55 عصر
یعنی چی؟من اگه صفحه بندی نکنم هیچ مشکلی نداره فقط وقتی امکان صفحه بندی رو فعال میکنم این مشکل پیش میاد.

mahdioo12194
جمعه 12 مهر 1392, 20:57 عصر
کداتو بزار!!

ehsan#baharangiz
جمعه 12 مهر 1392, 21:07 عصر
این کدای پیج لود صفحه است که سایز اونایی که t=0 هستو عوض میکنه.


protected void Page_Load(object sender, EventArgs e)
{



for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
Label l = (Label)GridView1.Rows[i].Cells[6].FindControl("Label1");
ImageButton im = (ImageButton)GridView1.Rows[i].Cells[7].FindControl("ImageButton1");
if (l.Text.ToString() == "0")
{
im.ImageUrl = "~/images/2.png";
for (int j = 0; j <= 5; j++)
{

GridView1.Rows[i].Cells[j].Font.Size = 10;
GridView1.Rows[i].Cells[j].Font.Bold = true;
}
//GridView1.DataBind();
}

}
try
{

//Label4.Text = Session["msg"].ToString();
//MultiView1.ActiveViewIndex = 0;
}
catch { }


اینم کد دیتا گرید


<div align="center">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="id" DataSourceID="SqlDataSource"
OnSelectedIndexChanged="GridView1_SelectedIndexChanged" BackColor="White"
BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3"
GridLines="Vertical" AllowPaging="True" >
<RowStyle BackColor="#EEEEEE" ForeColor="Black" />
<Columns>
<asp:CommandField SelectText="انتخاب" ShowSelectButton="True" />
<asp:BoundField DataField="id" HeaderText="کد پیام" InsertVisible="False"
ReadOnly="True" SortExpression="id" />
<asp:BoundField DataField="onvan" HeaderText="عنوان پیام"
SortExpression="onvan" />
<asp:BoundField DataField="mail" HeaderText="ایمیل" SortExpression="mail" />
<asp:BoundField DataField="textn" HeaderText="متن پیام"
SortExpression="textn" />
<asp:BoundField DataField="tdate" HeaderText="تاریخ ارسال"
SortExpression="tdate" />
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("t") %>' Visible="False"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="وضعیت پیام">
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/images/1.png" />
</ItemTemplate>
</asp:TemplateField>

</Columns>
<FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="#DCDCDC" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [id], [onvan], [mail], [textn], [tdate],[t] FROM [pyam]">
</asp:SqlDataSource>
</div>

mahdioo12194
جمعه 12 مهر 1392, 21:25 عصر
//GridView1.DataBind();


چرا کامنت شده؟!
اصلش اینه که تو databound گرید باید کد بنویسی!! یه بریک پوینت بزار ببین مشکل چیه؟!

ehsan#baharangiz
جمعه 12 مهر 1392, 21:49 عصر
اصلا اون دیتا باینده نیست همینجوریم کار میکنه اگه دیتا بایندرو بذارم دیگه همون بار اولم خوب نشونش نمیده.نمیدونی چکار کنم یا چه کدی رو اضافه یا کم کنم درست شه؟

aminireza65
شنبه 13 مهر 1392, 02:32 صبح
ربطی به DataBind نداره
شما کدت رو در رویداد DataBound مربوط به گرید بذار