PDA

View Full Version : تشخیص سطر جاری گریدویو



Leyla2011
دوشنبه 01 خرداد 1391, 18:39 عصر
سلام

من یه گرید ویو دارم که یکی از ستونهاش قابل edit شدنه- برای این ستون یه textو یه button بصورت template تعریف کردم - مشکلم سر تشخیص سطر مورد نظره


در رویداد کلیک button با for-each اجرا میشه و جواب هم میده اما من میخوام این رویداد فقط برای سطر مورد نظر اجرا بشه


foreach (GridViewRow Gr in GridView1.Rows)
{


Int32 _Id = Convert.ToInt32(GridView1.DataKeys[Gr.RowIndex ].Value);



TextBox Txt = (TextBox)Gr.Cells[3].FindControl("txtEditValue");

//call updateFunction

}

ahmad156
دوشنبه 01 خرداد 1391, 19:39 عصر
سوالتون مبهمه؟؟!!!:افسرده:
خوب حلقه foreach رو بردارین!!!!!!!!!!!!!!!

Leyla2011
دوشنبه 01 خرداد 1391, 19:56 عصر
سوالتون مبهمه؟؟!!!:افسرده:
خوب حلقه foreach رو بردارین!!!!!!!!!!!!!!!
چرا مبهمه ؟ جواب سوالمو ازmsdnپیدا کردم میذارم تا بقیه هم استفاده کنند:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "btnUpdateValueGrid")
{
Int32 index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = GridView1.Rows[index];
TextBox Txt = (TextBox)row.Cells[3].FindControl("txtEditValue");
cFactor ob = new cFactor();
ob.updateValueFactor(1, Convert.ToInt16(Txt.Text));
}
}

<asp:Button ID="btnUpdateValueGrid" runat="server"
onclick="btnUpdateValueGrid_Click" Text="ذخیره" CommandName="btnUpdateValueGrid"
CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" />

fakhravari
دوشنبه 01 خرداد 1391, 21:03 عصر
اول باید به اون Row دسترسی پیدا کنید :
GridViewRow row = (GridViewRow)((LinkButton)e.CommandSource).NamingC ontainer
if (e.CommandName == "btnUpdateValueGrid") {

بعد به کنترل مربوطه دسترسی پیدا کنید .
Label lbl = (Label) row.FindControl("LabelID");