PDA

View Full Version : بدست اوردن اطلاعات یک سطر



persaclub
دوشنبه 23 دی 1392, 23:37 عصر
سلام دوستان من یک گیرید ویو دارم ویخوام وقتی روی دکمه زدم اطلاعات اون سطر را بدست بیارم!
خیلی سرچ کردم چیزی که بکارم بیاد پیدا نکردم :(


<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" >

<Columns>
<asp:TemplateField>
<ItemTemplate>
<table >
<tr>
<td>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
</td>
<td>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</td>
<td>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("Gtxt") %>'></asp:Label>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>

<asp:CommandField ShowSelectButton="True" />

</Columns>
</asp:GridView>





ممنون میشم راهنمایی کنید

mohamad.j
سه شنبه 24 دی 1392, 00:16 صبح
سلام.
اگه توی ویندوز فرم میخوای این کار رو انجام بدی بدون استفاده کردن از دکمه ی دیگه، میتونی از رویداد CellClick گریدیو استفاده کنی.
یه مثال میارم برات. فکر کن جدول تو دو تا ستون داشته باشه.
حالا میخوای با کلیک کردن روی هر فیلد، اطلاعات سطر متناظر با اون رو توی txt1 و txt2 نمایش بده.
هینجوری:


private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.RowCount > 0)
{
txt1.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
txt2.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
}
}

persaclub
سه شنبه 24 دی 1392, 08:29 صبح
سلام.
اگه توی ویندوز فرم میخوای این کار رو انجام بدی بدون استفاده کردن از دکمه ی دیگه، میتونی از رویداد CellClick گریدیو استفاده کنی.
یه مثال میارم برات. فکر کن جدول تو دو تا ستون داشته باشه.
حالا میخوای با کلیک کردن روی هر فیلد، اطلاعات سطر متناظر با اون رو توی txt1 و txt2 نمایش بده.
هینجوری:


private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.RowCount > 0)
{
txt1.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
txt2.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
}
}

سلام
دوست گلم این روش برای asp جواب نمیده
اگر هم از کد


Response.Write( GridView2.Rows[0].Cells[0].Text);

استفاده کنم زمانی جواب میده که گیردویو من در حالت عادی باشه ولی الان من با TemplateField تنظیمش کردم!
ممنون میشم راهنمایی کنند دوستان

ahmad156
سه شنبه 24 دی 1392, 19:11 عصر
بهترین گزینه استفاده از CommandArgument و RowCommand هست.

persaclub
چهارشنبه 25 دی 1392, 11:56 صبح
بهترین گزینه استفاده از CommandArgument و RowCommand هست.

داداش من مشکل من روی داد(ایونت) نیست نمیدونم چجوری به مقادیر دست رسی پیدا کنم وقتی از TemplateField استفاده شده :|

meisam3322
چهارشنبه 25 دی 1392, 14:45 عصر
با سلام . از findcontrol ، دیتا گرید ویو استفاده کنید

mhq1368
چهارشنبه 25 دی 1392, 17:01 عصر
توی دکمه این کد رو بزار بعد باید یک تکست باکس بزاری و آی دی رو وارد کنی و سپس روی دکمه کلیک کن.

البته باید به تعداد اطلاعاتت توی جدول تکست باکس بزاری



la.da = new SqlDataAdapter("select * from subject_tbl where cat_id=@catid and subject_id=@subid", la.con);
la.da.SelectCommand.Parameters.AddWithValue("@catid", Request.QueryString["catid"]);
la.da.SelectCommand.Parameters.AddWithValue("@subid", txtdelid.Text);
la.da.Fill(la.dt);
if (la.dt.Rows.Count > 0)
{
txttopic.Text = la.dt.Rows[0].ItemArray.GetValue(1).ToString();
CKEditorControl1.Text = la.dt.Rows[0].ItemArray.GetValue(2).ToString();
CKEditorControl2.Text = la.dt.Rows[0].ItemArray.GetValue(3).ToString();
txtpicadr.Text = la.dt.Rows[0].ItemArray.GetValue(7).ToString();
txtpos.Text = la.dt.Rows[0].ItemArray.GetValue(5).ToString();
txtsource.Text = la.dt.Rows[0].ItemArray.GetValue(6).ToString();
txtwriter.Text = la.dt.Rows[0].ItemArray.GetValue(8).ToString();
txtdate.Text = la.dt.Rows[0].ItemArray.GetValue(4).ToString();
txtkeywords.Text = la.dt.Rows[0]["keywords"].ToString();
}

ahmad156
چهارشنبه 25 دی 1392, 17:30 عصر
دوست عزیز روش صحیح کار کردن با GridView (البته به نظر بنده):
شما معمولی ترین و بیشترین کاری که انجام بدین حذف و ویرایش و نمایش جزییات هست.پس ستون مربوط به هر کدوم رو به صورت زیر مینویسیم

<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="btnEdit" runat="server" CommandArgument="<%# Bind('authorId') %>"
CommandName="ed" ImageUrl="../images/Icons/icn_edit.png" />
</ItemTemplate>
</asp:TemplateField>

اون طرف قضیه رو هم به صورت مینویسیم

protected void gvUser_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "ed")
{
var userId = e.CommandArgument;
}
else if (e.CommandName == "del")
{
var userId = e.CommandArgument;
}
else if (e.CommandName=="show")
{
var userId = e.CommandArgument;
}
}

حالا شما هر کاری رو با داشتن userId میتونین انجام بدین بدین اینکه نیاز به در گیری با Cell و GridView بشین
موفق باشین.

persaclub
چهارشنبه 25 دی 1392, 18:20 عصر
سوال منو اشتباه متوجه شدید مثل اینکه!
مشکل من سرچ نیست
ببینید گرید ویو من به شکل زیر هست
115426
میخوام مقادری را بخونم نمیشه!:ناراحت:

ahmad156
چهارشنبه 25 دی 1392, 18:30 عصر
روشتون اشتباه هست.از همون روش بالا که گفتم قسمت edit رو برای همین اختصاص بدین

persaclub
چهارشنبه 25 دی 1392, 21:42 عصر
ادیت چرا؟من میخوام یه لیست بهم نشون بده (مثلا لیست کالاها)بعد مقدارش را بگیره و ارسال کنه!من نیاز به ادیت ندارم الان:| صفحه من به صورت پیش فرض شبیه اون عکس هست و اسم کالاها میاد و مقدارش جلوش میگره توی تکست باکس !

persaclub
جمعه 27 دی 1392, 18:34 عصر
هیچ کس کمک نمیکنه :(

EnKamran
چهارشنبه 09 بهمن 1392, 01:14 صبح
لینک (http://sadin.ir/Article/1/%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C-%D8%A8%D9%87-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-%D9%87%D8%A7%DB%8C-%D8%AF%D8%A7%D8%AE%D9%84-%DA%AF%D8%B1%DB%8C%D8%AF%D9%88%DB%8C%D9%88)