PDA

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



black_binary
چهارشنبه 27 دی 1391, 14:47 عصر
سلام دوستان عزیز
لطف فرمایید کمک کنید:
من میخواهم روی ردیف یک گرید ویو که کلیک میکنم کامند Edit اجرا شده و ستون ها به حالت تکس باکس شود و وقتی که آن ردیف را ترک میکنم کامند Update اجرا شود البته در asp

بدون داشتن دکمه edit فقط با کلیک بر روی هر قسمت از ردیف گرید ویو

mohandesee
چهارشنبه 27 دی 1391, 14:52 عصر
؟
تو تنظیمات گرید همچین گزینه ای داره اگه لازمه واستون میل کنم

black_binary
چهارشنبه 27 دی 1391, 14:57 عصر
جناب mohandesee (http://barnamenevis.org/member.php?249679-mohandesee) عزیز
اگه لطف کنید ایمیل کنید ممنون میشوم

black_binary
چهارشنبه 27 دی 1391, 16:40 عصر
دوستان این سوال همچنان باقی ست
....
در asp?

mohandesee
چهارشنبه 27 دی 1391, 22:10 عصر
خوب ایمیلتون رو میفرمودید؟؟؟

mohandesee
پنج شنبه 28 دی 1391, 16:04 عصر
<%@ Page Title="" Language="C#" MasterPageFile="~/MPage.master" AutoEventWireup="true" CodeFile="MSettingUser.aspx.cs" Inherits="MSettingUser" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<p class="padd-2">
<h2>مشاهده کاربران&nbsp; </h2></p>
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False"
DataKeyNames="ID"
DataSourceID="SqlDataSource1"
OnRowDeleted="GridView1_RowDeleted"
OnRowUpdated="GridView1_RowUpdated"
ShowFooter="True"
OnRowCommand="GridView1_RowCommand"
ForeColor="#003333">
<Columns>
<asp:CommandField ShowDeleteButton="True" DeleteText="حذف"
ShowEditButton="True" EditText="ویرایش" CancelText="لغو"
InsertText="اضافه" NewText="جدید" SelectText="انتخاب" UpdateText="بروزرسانی"/>
<asp:TemplateField HeaderText="ردیف" SortExpression="ID">
<ItemTemplate>
<asp:Label ID="lblID" runat="server"
Text='<%#Eval("ID") %>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:Button ID="btnInsert" runat="server"
Text="اضافه به لیست" CommandName="Add" />
</FooterTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="نام کاربری"
SortExpression="uname">
<ItemTemplate>
<asp:Label ID="uname" runat="server"
Text='<%#Eval("uname") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtuname" runat="server"
Text='<%#Bind("uname") %>'>
</asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtuname" runat="server">
</asp:TextBox>
</FooterTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="نوع گروه"
SortExpression="group_id">
<ItemTemplate>
<asp:Label ID="lblLocation" runat="server"
Text='<%#Eval("group_id") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtgroup" runat="server"
Text='<%#Bind("group_id") %>'>
</asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtgroup" runat="server">
</asp:TextBox>
</FooterTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="نام واقعی"
SortExpression="rname">
<ItemTemplate>
<asp:Label ID="rname" runat="server"
Text='<%#Eval("rname") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtrname" runat="server"
Text='<%#Bind("rname") %>'>
</asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtrname" runat="server">
</asp:TextBox>
</FooterTemplate>
</asp:TemplateField>

</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
DeleteCommand="DELETE FROM [tbl_login] WHERE [id] = @original_id"
InsertCommand="INSERT INTO [tbl_login] ([uname], [pass], [group_id]) VALUES (@uname, @pass, @group_id)"
SelectCommand="SELECT * FROM [tbl_login] ORDER BY [id]"

UpdateCommand="UPDATE [tbl_login] SET [uname] = @uname, [pass] = @pass, [group_id] = @group_id WHERE [id] = @original_id"
OnInserted="SqlDataSource1_Inserted"
OldValuesParameterFormatString="original_{0}">

<DeleteParameters>
<asp:Parameter Name="uname" Type="String" />
<asp:Parameter Name="pass" Type="String" />
<asp:Parameter Name="group_id" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="uname" Type="String" />
<asp:Parameter Name="pass" Type="String" />
<asp:Parameter Name="group_id" Type="Int32" />
<asp:Parameter Name="original_id" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="uname" Type="String" />
<asp:Parameter Name="pass" Type="String" />
<asp:Parameter Name="group_id" Type="Int32" />
</InsertParameters>
</asp:SqlDataSource>
<asp:Label ID="lblMessage" runat="server"
Font-Bold="True" ForeColor="#003333"></asp:Label>
</asp:Content>

در قسمت کد بیهایند هم اینو کپی کنید و تغییرات دیتابیستون رو اعمال کنید

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class MSettingUser: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
lblMessage.Text = "";
}
protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
lblMessage.Text = "کاربر بروزرسانی شد";
}
protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e)
{
lblMessage.Text = "کاربرحذف شد";
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Add")
{
string struname = ((TextBox)
GridView1.FooterRow.FindControl("txtUname")).Text;

string strpass =
((TextBox)GridView1.FooterRow.FindControl
("txtPass")).Text;

string strgroup =
((TextBox)GridView1.FooterRow.FindControl
("txtgroup")).Text;
//SqlDataSource1.InsertParameters.Clear();
//SqlDataSource1.InsertParameters.Add
//("FirstName", strFirstName);
//SqlDataSource1.InsertParameters.Add
//("LastName", strLastName);
//SqlDataSource1.InsertParameters.Add
//("Department", strDepartment);
//SqlDataSource1.InsertParameters.Add
//("Location", strLocation);

SqlDataSource1.InsertParameters["uname"].DefaultValue
= struname;
SqlDataSource1.InsertParameters["pass"].DefaultValue
= strpass;
SqlDataSource1.InsertParameters["group_id"].DefaultValue
= strgroup;
SqlDataSource1.Insert();
}
}
protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs e)
{
lblMessage.Text = "کاربر به گروه اضافه شد";
}

}

black_binary
پنج شنبه 28 دی 1391, 22:26 عصر
دوست عزیز از لطفت ممنون ولی من توی سوالم نوشتم بدون داشتن دکمه edit
فکر میکنم خواسته من به این راحتی حل نمیشه مثلا برای سلکت شدن یک ردیف از گریدویو بدون داشتن دکمه سلکت
یعنی با کلیک شدن روی سطر، آن سطر به حالت سلکت در بیات
حال همین امر برای قضیه edit پیاده شود
اگر سوالم که در تایپیک اول نوشتم خونده بشه متوجه میشین.
باز هم تشکر فراوان از پاسختون.