PDA

View Full Version : سوال: بایند فیلدهای خارج از دیتلبیس در گریدویو



zahracode
شنبه 12 شهریور 1390, 00:32 صبح
سلا دوستان
من یه لیستی دارم که میخوام هر دفعه هر آیتمش رو با یه مقداری مقایسه کنم بعد اونو رو گرید ویو بایند کنم.
من یه lableتو گرید ویو انداختم اما نمیدونم textfield و text رو چطور مقدار دهی کنم.
من قبل از این فقط از دیتا بیس رو گرید ویو بایند کرده بودم.اما الان نمیدونم خارج دیتا بیس چطو میشه اینکارو کرد
لطفا اگر ممکنه کمکم کنید
ممنون

hjran abdpor
شنبه 12 شهریور 1390, 01:14 صبح
اگه Template ساختی از دستور Eval استفاده کنید.

<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("ّFiledName") %>'></asp:TextBox>

zahracode
شنبه 12 شهریور 1390, 09:43 صبح
اگه Template ساختی از دستور Eval استفاده کنید.

<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("ّFiledName") %>'></asp:TextBox>

سلام و ممنونم بخاطر پاسختون اما منظور من این نبود این واسه حالتیه که شما یه کنترل دارین و میخواین یه چیزیو توش بایند کنید من گفتم که میخوام اون مقادیر داخل لست رو بایند کنم و بعد در مورد اسم filename سوالی داشتم و اون اینه که آیا هر متغیری که تو صفحه مون تعریف کنیم اینجا میتونیم اسمشو بیاریم؟

کدی که من نوشتم اینه
#region Variables
DataTable dt;
List<int> Questions_IDs= new List<int>();
List<int> Answers_IDs = new List<int>();
 
 
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{

GetData();
GridView1.DataSource = dt;
GridView1.DataBind();
//GridView1.DataBind();
//DataList1.DataBind();

}

}
private void GetData()
{
List<string> result = Request.QueryString["id"].ToString().Split(',').ToList();//اینجا یه لیست درس کردم با اون کوئریا
//DataList1.DataSource = result;
string str_SQL = "Select * from tb_javab where ";

foreach (string s in result)//
{
Questions_IDs.Add(Convert.ToInt32(s.Split('$')[1]));
Answers_IDs.Add(Convert.ToInt32(s.Split('$')[0]));
//GridView1.DataSource = Convert.ToInt32(s.Split('$')[1]);
 
str_SQL += "(ID_Soal=" + s.Split('$')[0] + ") or ";

}
str_SQL = str_SQL.Remove(str_SQL.Length - 4, 4);
SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;Initial Catalog=final;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter(str_SQL, con);
con.Open();
try
{
dt = new DataTable("Result");
da.Fill(dt);
}

catch (Exception ex)
{
//TODO Error Handling

}
GridView1.DataSource = dt;
GridView1.DataBind();
int i=0;
foreach (DataRow d in dt.Rows )
{
if (Convert.ToInt32(d[2]) == Answers_IDs[i])
{
//GridView1.DataSource = Answers_IDs[i];
//GridView1.DataBind();
}

---------------
من داخل پیج لود یه تابع رو صدا زدم و کار اون تابع اینه که یه لیست درست میکنه از مقادیری که از یه صفحه با کوئری استرینگ میفرستیم که هر مقدارش تشکیل شده از دوتا پارامتر qd وqid که چون قبلا اونا رو تو کوئری صفحه قبل با $ بهم چسبوندیم حالا اینجا با یه foreach ار هم جدا کردیم و هر دومو تو یه متغیر ریختم بعد واسه مقدیر هر کدوم از این دوتا متغیر یه لیست ساختم که بعد foreach تموم شد پر میشن بعد به دیابیس وصل شدم و سطرهایی که مقدارشون با qd برابر بود کشیدم بیرون و ریختم تو یه datatable
اما سئوال من اینه که من میخوام توی foreach دوم یکی از ستونهای هر سطر دیتاتیبل با اندیس 2 رو با هر آیتم لیستAnswer_IDs مقایسه کنم و بعد بلافاصله همون آیتم رو بفرستم تو Gridview واسه نمایش
یعنی هم Convert.ToInt32(d[2])و هم Answer_IDs[i]
دوتا lable انداختم تو گریدویو ولی نمیدونم ID و text و datatextfield چی بنویسم که این دوتا رو نمایش بده
ممنونم