PDA

View Full Version : سوال: نمایش متن در گرید



Boo Ali
پنج شنبه 29 مهر 1389, 11:54 صبح
باسلام
یک فیلد داریم که داده های آن چندسطر است و میخواهیم در یکی از سلولهای گرید نشان دهیم ولی آن را در چند سطر نشان میدهد
میخواهد چندکاراکتر به اندازه طول سلول را نشان داده و بقیه را با گذاشتن ... خلاصه کند و ظاهر گرید را بهم نریزد
ممنون

hamhik
پنج شنبه 29 مهر 1389, 12:33 عصر
شما می تونید بگید اگر طول (length)داده ی فیلدی که مد نظرتونه از مثلا 10 بیشتر بود 10 تا کاراکتر اول (substring(0,10))به علاوه ی علامت سه نقطه رو در لیبل قرار بده "..."+(label1.text=substring(0,10))

یه نمونه کد ساده که یه الگو به شما می ده


protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1.Text.Length >= 10)
Label1.Text = TextBox1.Text.Substring(0, 10).ToString() + "...";
else
Label1.Text = TextBox1.Text;
}

leila_mahyanet
پنج شنبه 29 مهر 1389, 13:58 عصر
برای داده های داخل سلول های گرید باید تابع زیر رو در رویداد RowDataBound گرید قرار دهید:



if (e.Row.RowType == DataControlRowType.DataRow)
{
ViewState["OrigData"] = e.Row.Cells[Index].Text;
if (e.Row.Cells[Index].Text.Length >= lenght)
{
e.Row.Cells[Index].Text = e.Row.Cells[colIndex].Text.Substring(0, lenght) + " ... ";
e.Row.Cells[Index].ToolTip = ViewState["OrigData"].ToString();
}

}


قسمت های قرمز مقادیر دلخواه هستند . طول رشته و اندیس ستونی از گردید که می خواهید خلاصه شود.

Boo Ali
پنج شنبه 29 مهر 1389, 14:00 عصر
ببشخيد منظور من نمايش در سلول گريد بود
چه تنظيماتي بايد در گريد و سلول مورد نظر اعمال نمايم
ممنون

leila_mahyanet
پنج شنبه 29 مهر 1389, 14:05 عصر
جوابتونو دادم . خودم ازش استفاده میکنم . اگه مشکلی بود بپرسید

Boo Ali
شنبه 01 آبان 1389, 11:18 صبح
ممنون
منظورم این بود که داده های سلول گرید از بین نره و فقط در اندازه مشخصی، مثلاً 100 پیکسل، بخشی از داده را نشان دهد و بقیه رو مخفی و یا نمایش ندهد و هر وقت اون ردیف انتخاب شد داده اون سلول قابل استفاده باشد
ممنون

leila_mahyanet
شنبه 01 آبان 1389, 13:19 عصر
در این حالت هم از بین نمیره . حتی وقتی نشانگر موس روی آن سلول می برید ، متن کامل را نمایش می دهد.

majnun
شنبه 01 آبان 1389, 13:28 عصر
خب وقتی اطلاعات رو از بانک میگیرید خلاصه کنید دیگه


SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Majn oon\Documents\Visual Studio 2008\WebSites\Nasim\App_Data\nasimDB.mdf;Integrate d Security=True;User Instance=True");
cmd.CommandText = "SELECT id, name, gheymat, image, tedad FROM Tbl_ajnas";
cmd.Connection = con;


con.Open();
SqlDataReader dr;
dr = cmd.ExecuteReader();
if (!dr.HasRows)
{
dr.Close();
}
else
{

while (dr.Read())
{
ajnas temp = new ajnas();
temp.Id = dr.GetInt32 (0);
string name = dr.GetString(1);
temp.Name = name.Substring(0, 10);
temp.Gheymat = dr.GetString(2);

temp.Image = dr.GetString(3);
temp.Tedad = dr.GetInt32(4);
list.Add(temp);
}
dr.Close();
}


الان درون این مثال فقط 10 کاراکتر از نام رو میگیره ...