PDA

View Full Version : گرفتن مقدار ID هر ردبف گرید ویو



sam166
شنبه 31 اردیبهشت 1390, 01:02 صبح
سلام و خسته نباشید
من یک گرید ویو دارم که درونش یک لینک باتون و یک DropDownList هست
حالا میخوام زمانی که کاربر روی لینک کلیک کرد محتویات DropDownList و بقیه cell ها همون سطر گرید ویو در یک بانک اطلاعاتی دیگه ذخیره بشه

کدی که استفاده کردم به صورت زیر است

protected void GridView2_RowCommand1(object sender, GridViewCommandEventArgs e)
{

if (e.CommandName == "ok")
{

DropDownList ddl = (DropDownList)GridView2.Rows[id1].Cells[3].FindControl("DropDownList1");
string val = ddl.SelectedValue;


idplay =Convert.ToInt32(e.CommandArgument);
nameform = (e.CommandArgument).ToString();



BLL.Form.AddNewResultByUser(TextBox1.Text, nameform, val, NumMeli);
}
}

حالا اگه روی لینک باتون هر سطر کلیک کنی مقدار DropDownList سطر اول در بانک اطلاعاتی ذخیره میشه
من میخوام روی لینک هر سطر که کلیک کردی مقدار DropDownList همون سطر در بانک اطلاعاتی ذخیره بشه

میدونم مشکل از چی هست
ولی نمیدونم چه جوری حلش کنم
مشکل از این قسمت هست
GridView2.Rows[id1].Cells[3]
مقدار id1 رو من 0 قرار دادم
حالا نمیدونم چه طور مقدار id اون سطری که لینک باتون کلیک میشه رو بگیرم و در این قسمت قرار بدم

پیشاپیش ممنون

rajabpour
شنبه 31 اردیبهشت 1390, 09:45 صبح
درود،
دوست من، برای این کار راههای زیادی وجود داره...
مثال:
اینکه در CommandArgument علاوه بر آی.دی رکورد، آی.دی ایندکس گرید رو هم بزاری و اونها رو با یک کاراکتر خاص جدا کنی. بعد توی کد استفاده کنی:


CommandArgument='<%# String.Format("{0}|{1}",Eval("ID"),Container.ItemIndex)%>'

sam166
شنبه 31 اردیبهشت 1390, 21:19 عصر
با کمک یکی از دوستان پیدا شد
GridViewRow row = (GridViewRow)((Control)e.CommandSource).Parent.Par ent;

int RowIndex = row.DataItemIndex;