Member 12605293 Ответов: 2

Как получить только идентификатор выбранного значения в ASP gridview


Привет
Я работаю над asp Gridview и хочу получить идентификатор содержимого, присоединившись к содержимому из другой таблицы и отобразив его.И идентификатор выпадающего списка не отображается в коде позади.Вот мой сниппнет

Что я уже пробовал:

<pre>protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                bind();
                Bindmachine();
            }
        }
        protected void bind()
        {
            cn.Open();
            SqlCommand cmd = new SqlCommand("Select Sample7.Empid,Sample7.EmpName,Sample6.machineid From Sample7 Join Sample6 ON Sample7.Categoryid = Sample6.machineid ", cn);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds);
            cn.Close();
            if (ds.Tables[0].Rows.Count > 0)
            {
                gvDetails.DataSource = ds;
                gvDetails.DataBind();
            }
        }
        protected void gvDetails_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName.Equals("Add"))
            {
                TextBox txtEmpId = (TextBox)gvDetails.FooterRow.FindControl("txtempid");
                TextBox txtEmpName = (TextBox)gvDetails.FooterRow.FindControl("txtempname1");
                DropDownList ddlEmpDep = (DropDownList)gvDetails.FooterRow.FindControl("txtmac1");
                

                cn.Open();
                SqlCommand cmd =
                new SqlCommand(
                "insert into Sample7(EmpId,EmpName,Categoryid) values('" + txtEmpId.Text + "','" + txtEmpName.Text + "','" +
                ddlEmpDep.SelectedValue + "')", cn);
                int result = cmd.ExecuteNonQuery();
                cn.Close();
                if (result == 1)
                {
                    bind();

                }
                else
                {

                }
            }
        }


        protected void gvDetails_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            int EmpId = Convert.ToInt32(gvDetails.DataKeys[e.RowIndex].Value.ToString());
            string username = gvDetails.DataKeys[e.RowIndex].Values["EmpName"].ToString();
            DropDownList txtmac = (DropDownList)gvDetails.Rows[e.RowIndex].FindControl("txtmac1");
            
            cn.Open();
            SqlCommand cmd = new SqlCommand("Update Sample7 set machineid ='" + txtmac.Text + "' where EmpId=" + EmpId, cn);
            cmd.ExecuteNonQuery();
            cn.Close();

            // lblresult.Text = username + " Details Updated successfully";
            gvDetails.EditIndex = -1;
            bind();
        }
        protected void gvDetails_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int EmpId = Convert.ToInt32(gvDetails.DataKeys[e.RowIndex].Values["EmpId"].ToString());
            string username = gvDetails.DataKeys[e.RowIndex].Values["EmpName"].ToString();
            cn.Open();
            SqlCommand cmd = new SqlCommand("delete from Sample7 where EmpId=" + EmpId, cn);
            int result = cmd.ExecuteNonQuery();
            cn.Close();
            if (result == 1)
            {
                bind();

                
            }
        }
        protected void gvDetails_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            gvDetails.EditIndex = -1;
            bind();
        }
        protected void gvDetails_RowEditing(object sender, GridViewEditEventArgs e)
        {
            gvDetails.EditIndex = e.NewEditIndex;
            bind();
        }
        protected void gvDetails_OnRowDataBound(object sender, GridViewRowEventArgs e)
        {


        }
        protected void Bindmachine()
        {
            DataTable dt = new DataTable();
            cn.Open();
            SqlCommand cmd = new SqlCommand("Select * from Sample6", cn);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            //DataSet ds = new DataSet();
            da.Fill(dt);
            cn.Close();
            ddlmachine.DataSource = dt;
            ddlmachine.DataTextField = "CategoryName";
            ddlmachine.DataValueField = "CategoryName";
            ddlmachine.DataBind();
            ddlmachine.Items.Insert(0, new ListItem("--Select--"));

        }

        protected void ddlmac_SelectedIndexChanged1(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            cn.Open();
            if (ddlmachine.SelectedValue != "")
            {
                string[] sal = ddlmachine.SelectedValue.Split(',');
                

                SqlCommand cmd = new SqlCommand("select * from Sample7 ", cn);
                
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(dt);
            }

            else
            {
                SqlCommand cmd = new SqlCommand("select * from Sample7", cn);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(dt);
            }
            cn.Close();
            gvDetails.DataSource = dt;
            gvDetails.DataBind();
        }
<pre><asp:GridView ID="gvDetails" style="background-color:lightblue;     border-collapse: collapse;
               background-color: lightgreen;
    margin-top: -53px;" DataKeyNames="EmpId,EmpName" runat="server"

               HeaderStyle-CssClass="TableHead"

                AutoGenerateColumns="false"  HeaderStyle-BackColor="#61A6F8"

                ShowFooter="true" HeaderStyle-Font-Bold="true" HeaderStyle-ForeColor="white"

                CellPadding="10" CellSpacing="0"

                AllowPaging="true" PageSize="5"

                OnRowCommand="gvDetails_RowCommand"  OnRowUpdating="gvDetails_RowUpdating" 

                OnRowEditing="gvDetails_RowEditing" OnRowCancelingEdit="gvDetails_RowCancelingEdit"

                OnRowDeleting="gvDetails_RowDeleting" OnPageIndexChanging="OnPaging"

                 AllowSorting="True" OnRowDataBound="gvDetails_OnRowDataBound"

                OnTextChanged="OnTextChanged">

        <Columns >
                    <asp:TemplateField  HeaderText="EmployeeID">
                        <ItemTemplate>
                            <asp:Label ID="lblempid" runat="server" 

                                Text='<%# Eval("EmpId")%>'></asp:Label>
                        </ItemTemplate>
                        <FooterTemplate>
                            <asp:TextBox ID="txtempid" 

                                MaxLength="5" runat="server"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="rfvempid" runat="server" ControlToValidate="txtempid" Text="*" ValidationGroup="validaiton" />
                        </FooterTemplate>
                    </asp:TemplateField>



                    <asp:TemplateField HeaderText="EmployeeName">
                        <HeaderTemplate>
                            EmployeeName 
                             <br></br>
                            
                            

                        </HeaderTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtempname" runat="server"   Text='<%#Eval("EmpName") %>' />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lblempname" runat="server"  Text='<%#Eval("EmpName") %>' />
                        </ItemTemplate>
                        <FooterTemplate>
                            <asp:TextBox ID="txtempname1" runat="server"  AutoPostBack="false"  />
                            <asp:RequiredFieldValidator ID="rfvempname" runat="server" ControlToValidate="txtempname1" Text="*" ValidationGroup="validaiton" />
                        </FooterTemplate>
                    </asp:TemplateField>


                    <asp:TemplateField HeaderText="Categoryid">
                        <HeaderTemplate>
                            Categoryid 
                             <br></br>
                            
                            

                        </HeaderTemplate>
                        <EditItemTemplate>
                            <asp:DropDownList ID="ddlmachine" runat="server" OnSelectedIndexChanged="ddlmac_SelectedIndexChanged1" ></asp:DropDownList>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lblmac" runat="server"  Text='<%#Eval("machineid") %>' />
                        </ItemTemplate>
                        <FooterTemplate>
                            <asp:TextBox ID="txtmac1" runat="server" />
                            <asp:RequiredFieldValidator ID="rfvdep" runat="server" ControlToValidate="txtmac1" Text="*" ValidationGroup="validaiton" />
                        </FooterTemplate>
                    </asp:TemplateField>

            <asp:TemplateField HeaderText="Edit/Delete" HeaderStyle-Width="5%">
                        <EditItemTemplate>
                            <asp:ImageButton ID="imgbtnUpdate"  CommandName="Update" runat="server" ImageUrl="~/Images/update.png" ToolTip="Update" Height="20px" Width="20px" />
                            <asp:ImageButton ID="imgbtnCancel" runat="server" CommandName="Cancel" ImageUrl="~/Images/cancel.png" ToolTip="Cancel" Height="20px" Width="20px" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:ImageButton ID="imgbtnEdit" CommandName="Edit" runat="server" ImageUrl="~/Images/ediit.png" ToolTip="Edit" Height="20px" Width="20px" />
                            <asp:ImageButton ID="imgbtnDelete" CommandName="Delete" Text="Edit" runat="server" ImageUrl="~/Images/deletee.png" ToolTip="Delete" Height="10px" Width="10px" />
                        </ItemTemplate>
                        <FooterTemplate>
                            <asp:ImageButton ID="imgbtnAdd" runat="server" ImageUrl="~/Images/Add.png" CommandName="Add" Width="20px" Height="20px" ToolTip="Add new User" ValidationGroup="validaiton" OnClientClick="GetGridFooterRowvalues()" />
                        </FooterTemplate>
                    </asp:TemplateField>

                   
                </Columns>
        </asp:GridView>
Create Table Sample7 (id int identity(1,1),Empid int,EmpName varchar(50),Categoryid nvarchar(50))

Insert Into Sample7 (Empid,EmpName,Categoryid)
Values (1,'Rahul','1'),
 (2,'Sam','2'),(3,'Raj','3')
Select * from Sample7

Create Table Sample6 (id int identity(1,1),machineid nvarchar(50) ,CategoryName varchar(50))
Insert Into Sample6 (machineid,CategoryName)
Values (1,'Machine1'),(2,'Machine2'),(3,'Machine3')
Select * from Sample6

Select Sample7.Empid,Sample7.EmpName,Sample6.machineid From Sample7
Join Sample6 ON Sample7.Categoryid = Sample6.machineid

Karthik_Mahalingam

непонятный

Member 12605293

Привет Картик
Я использую asp gridview, и у меня есть 3 столбца в моей первой таблице следующим образом ..Empid, EmpName, Categoryid (Table1) и выпадающий список из другой таблицы, имена столбцов которой-Machineid и CategoryName(Table2)

Теперь я связываю выпадающий список со вторым столбцом таблицы CategoryName и, используя это выбранное значение, хочу показать только его machineid в моей сетке, которая имеет столбцы таблицы 1.... Во-вторых, можно ли сделать так, чтобы выпадающий список имел несколько параметров seclect и отображал machineid как "1,2,3" В моем столбце с помощью разделения запятой????

Member 12605293

Я ждал вашего ответа раньше.Надеюсь, вы понимаете этот пост.

Karthik_Mahalingam

у вас есть решение, я надеюсь, что это имеет смысл

Member 12605293

Привет, Картик.
Я в этом почти не сомневаюсь

Karthik_Mahalingam

какие сомнения

Member 12605293

Привет Картик
У меня есть два стола
Таблица 1 имеет 3 столбца (Empid, EmpName, Categoryid)

В таблице 2 и столбец 2 (Кодтипа " и " категория)

В выпадающем списке я должен привязать имя категории из таблицы 2, чтобы показать его в выпадающем списке.
При выборе значения those я хочу получить Categoryid в моей таблице 1.

Мой вопрос

1.My сомнение должен ли я использовать join query здесь, чтобы объединить две таблицы ???
2.Is что можно выбрать несколько значений в выпадающем списке и показать их как 1,2,3 горизонтально
3. при выполнении функции редактирования я хочу, чтобы этот конкретный столбец был выпадающим с мультиселектом, а не текстовым полем.

Karthik_Mahalingam

1.My сомнение должен ли я использовать join query здесь, чтобы объединить две таблицы ???
да с общим идентификатором

2.Is что можно выбрать несколько значений в выпадающем списке и показать их как 1,2,3 горизонтально
да но это не очень хороший подход

3. при выполнении функции редактирования я хочу, чтобы этот конкретный столбец был выпадающим с мультиселектом, а не текстовым полем.
да, используйте multi selecct control (плагин jquery)

Member 12605293

Привет Картик
Спасибо за ваш ответ.Во вторых у меня есть еще одно сомнение
Я хочу отобразить выпадающий список на моем шаблоне EditItemTemplate и Footer, а также показать метку в Itemtemplate.
Должен ли я написать 2 "OnSelectedIndexChanged" для шаблона EditItem и шаблона нижнего колонтитула для выпадающего списка?

Karthik_Mahalingam

да вы должны

Member 12605293

Привет Картик
Потратьте несколько минут на мою проблему сэр

Member 12605293

Привет Картик
Пинг меня как только вы освободитесь

Member 12605293

Привет Картик,

Пожалуйста, проверьте код ...

protected void Page_Load(отправитель объекта, EventArgs e)
{
if (! IsPostBack)
{ связывать(); }
}
охраняемых недействительными привязать()
{
спицы.Открыть();
Команда sqlcommand cmd и = новая команда sqlcommand("выберите т0.Empid В,Т0.наименование,Т1.Поле DepartmentID от Telerik3 присоединиться Department1 на Т0.skillsid = Т1.Поле DepartmentID", СП);
SqlDataAdapter da = новый SqlDataAdapter(cmd);
DataSet ds = новый набор данных();
да.Заполнить(ДС);
спицы.Рядом();
если (ДС.Таблицы[0].Строк.Граф > 0)
{
gvDetails.Источник данных = ds;
gvDetails.Привязку();
}
ещё
{
ДС.Таблицы[0].Строк.Добавить(ДС.Таблицы[0]. NewRow());
gvDetails.Источник данных = ds;
gvDetails.Привязку();
инт свойств = gvDetails.Строки[0].Ячейки.Рассчитывать;
gvDetails.Строки[0].Ячейки.Четкий();
gvDetails.Строки[0].Ячейки.Добавить (новая табличная ячейка());
gvDetails.Строки[0].Ячейки[0].Columnspan значение = свойств;
gvDetails.Строки[0].Ячейки[0].Text = " введите данные";
}
}
охраняемых недействительными gvDetails_RowCommand(объект отправителя, GridViewCommandEventArgs е)
{
если (электронная.Имя_команды."Равно" ("Добавить"))
{
TextBox txtEmpId = (TextBox)gvDetails.FooterRow.FindControl ("txtempid");
TextBox txtEmpName = (TextBox)gvDetails.FooterRow.FindControl ("txtempname1");
DropDownList ddlEmpDep = (DropDownList)gvDetails.FooterRow. FindControl ("DropDownList3");
спицы.Открыть();
SqlCommand cmd =
новая команда SqlCommand(
"вставьте в Telerik3(empid,name,skillsid) значения ('" + txtEmpId.Текст + "', '" + txtEmpName.Текст + "','" +
ddlEmpDep.SelectedValue + "')", СП);
int result = cmd.Метод executenonquery();
спицы.Рядом();
если (результат == 1)
{
связывать();

}
ещё
{

}
}
}

protected void ddlitem_SelectedIndexChanged(отправитель объекта, GridViewRowEventArgs e)
{
//DropDownList ddl = (DropDownList)e. Row.FindControl ("DropDownList2");
//DataTable dt = новый DataTable();
//СN.Открыть();
//если (код DDL.SelectedValue != "")
//{
// string[] sal = ddl.Выбранное значение.Расщеплять(',');
// string from = sal[0];
// string to = sal[1];
//}
}
охраняемых недействительными gvDetails_RowDeleting(объект отправителя, GridViewDeleteEventArgs е)
{
int EmpId = преобразовать.ToInt32(gvDetails.DataKeys[e.RowIndex]. Values["empid"].Метод toString());
строка username = gvDetails.DataKeys[e.RowIndex]. Values["empname"].Метод toString();
спицы.Открыть();
SqlCommand cmd = new SqlCommand ("удалить из Telerik3, где empid=" + EmpId, cn);
int result = cmd.Метод executenonquery();
спицы.Рядом();
если (результат == 1)
{
связывать();

}
}
охраняемых недействительными gvDetails_RowUpdating(объект отправителя, GridViewUpdateEventArgs е)
{
int EmpId = преобразовать.ToInt32(gvDetails.DataKeys[e.RowIndex]. Значение.Метод toString());

TextBox txtname = (TextBox)gvDetails.Ряды[электронный.Параметр rowindex].FindControl ("txtempname");
DropDownList txtskills = (DropDownList)gvDetails.Ряды[электронный.Параметр rowindex].FindControl ("DropDownList2");


спицы.Открыть();
SqlCommand cmd = new SqlCommand ("Update Telerik3 set name='" + txtname.Текст+"', skillsid='" + txtskills.Текст + "'где empid=" + EmpId, cn);
УМК.Метод executenonquery();
спицы.Рядом();

// lblresult

Member 12605293

Привет Картик
Пожалуйста, проверьте мои фрагменты, чтобы получить выбранный текстовый идентификатор в текстовом поле типа (1,2,3) с опцией multiselect (которую я еще не использовал)


<asp: GridView ID=" gvDetails "style=" background-color:lightgreen; border-collapse: collapse;
цвет фона: светло-зеленый;
margin-top: - 53px; "DataKeyNames=" empid, name "runat=" сервер"

AutoGenerateColumns= "false" HeaderStyle-BackColor= " #61A6F8"
ShowFooter="истинный" HeaderStyle-шрифт-жирный="истинный" HeaderStyle-цвет="белый"
CellPadding= " 10 "CellSpacing=" 0"
AllowPaging= "true" PageSize= " 5"
AllowSorting= "True" OnRowDataBound= " gvDetails_OnRowDataBound"
Метода onrowcancelingedit="gvDetails_RowCancelingEdit"
OnRowDeleting=" gvDetails_RowDeleting "OnRowEditing=" gvDetails_RowEditing"
OnRowUpdating= " gvDetails_RowUpdating"
OnRowCommand= "gvDetails_RowCommand" >

& lt;колонки >


<asp:TemplateField HeaderText= "EmployeeID">
& lt;itemtemplate>
&ЛТ;АСП:метка идентификатор="lblempid" атрибут runat="сервер" класса="clsempid"
Text='<%# Eval ("empid")%>'>

& lt;footertemplate>
<asp:TextBox ID= " txtempid"
MaxLength= " 5 "runat=" сервер " >






<asp:TemplateField HeaderText= "EmployeeName">
< edititemtemplate>
&ЛТ;АСП:текстовое поле с ID="txtempname" атрибут runat="сервер" текст=в'<%#Ивала("название") %&ГТ;' /&ГТ;

& lt;itemtemplate>
&ЛТ;АСП:метка идентификатор="lblempname" атрибут runat="сервер" класса="clsempid1" текст=в'<%#Ивала("название") %&ГТ;' /&ГТ;

& lt;footertemplate>
&ЛТ;АСП:текстовое поле с ID="txtempname1" атрибут runat="сервер" autopostback элемента управления="истинного" метода onkeypress="hidedialog(этого)" /&ГТ;





<asp:TemplateField HeaderText= "навыки" >
< edititemtemplate>
&ЛТ;как ASP:dropdownlist с ИД="DropDownList2" атрибут runat="сервер" OnSelectedIndexChanged="Chekddl_SelectedIndexChanged" autopostback элемента управления="правда" и GT;




& lt;itemtemplate>
&ЛТ;АСП:метка идентификатор="Label4" атрибут runat="сервер" текст=в'<%#Ивала("поле DepartmentID") %&ГТ; в' >



& lt;footertemplate>
&ЛТ;как ASP:dropdownlist с ИД="DropDownList3" атрибут runat="сервер" и GT;








<asp:TemplateField HeaderText= "Edit/Delete" HeaderStyle-Width= " 5%">
< edititemtemplate>
&ЛТ;как ASP:ImageButton с ИД="imgbtnUpdate" Имя_команды="обновить" атрибут runat="сервер" Url_изображения="~/изображения/обновление.ПНГ" подсказка="обновить" высота="20 ПКС" ширина="20 ПКС" /&ГТ;
&ЛТ;как ASP:ImageButton с ИД="imgbtnCancel" атрибут runat="сервер" Имя_команды="отмена" Url_изображения="~/изображения/отменить.ПНГ" подсказка="закрыть" высота="20 ПКС" ширина="20 ПКС" /&ГТ;

& lt;itemtemplate>
&ЛТ;как ASP:ImageButton с ИД="imgbtnEdit" Имя_команды="редактировать" атрибут runat="сервер" Url_изображения="~/изображения/вставить.ПНГ" подсказка="редактировать

Karthik_Mahalingam

можете ли вы разместить несколько скриншотов на своей странице?

Member 12605293

Привет Картик
доброе утро

Member 12605293

Спасибо за ваш ответ, сэр, Извините, что я не могу опубликовать фотографии здесь, сайты заперты в моем офисе

Karthik_Mahalingam

тогда как я пойму вашу точку зрения?
вы должны точно указать место, где вы получаете ошибку или застряли
чтобы я мог на него смотреть.
я не могу увидеть весь код и понять

Member 12605293

Да Картик
Вот в чем мое сомнение

Операция crud работает Karthik, но при выборе значения в выпадающем списке предположим, что я выбираю "Сверлильный станок", он отображается в моем gridtextbox, но я не хочу показывать имя, тогда как я хочу отображать его идентификатор" 01 " При выборе..

Что я сделал

1.я связал выпадающий список, и ddl работает
2.я соединил идентификационные детали с моей вставочной таблицей
3.я сделал тип данных "nvarchar" в столбце Id, чтобы получить несколько идентификаторов "1,2", и единственное, что я получаю, - это имя " Сверлильный станок"

Мне нужны некоторые фрагменты на его selectedindex karthik, чтобы я мог wrk на остальной части ddlz.

Member 12605293

protected void gvDetails_OnRowDataBound(отправитель объекта, GridViewRowEventArgs e)
{
если (электронная.Подряд.RowType == DataControlRowType.Нижний колонтитул)
{
DropDownList ddlDesignation = (DropDownList)e. Row.FindControl ("DropDownList3");
DataTable dt = новый DataTable();
спицы.Открыть();
SqlCommand cmd = new SqlCommand ("Select * from Department2", cn);
SqlDataAdapter da = новый SqlDataAdapter(cmd);

да.Заполнить(ДТ);
спицы.Рядом();
ddlDesignation.Источник данных = dt;
ddlDesignation.DataTextField = " DepartmentName";
ddlDesignation.DataValueField = " Имя Отдела";
ddlDesignation.Привязку();
ddlDesignation.Предметы.Insert(0, new ListItem ("--Select--", " 0"));
спицы.Рядом();
}
Dropdownlist для ДДЛ = (dropdownlist для)Эл.Подряд.FindControl("DropDownList2");
if (ddl != null)
{
DataTable dt = новый DataTable();
спицы.Открыть();
SqlCommand cmd = new SqlCommand ("Select * from Department2", cn);
SqlDataAdapter da = новый SqlDataAdapter(cmd);
да.Заполнить(ДТ);
ddl. DataSource = dt;
инструкции DDL.DataValueField = "Кафедраимя";
инструкции DDL.DataTextField = "Кафедраимя";
инструкции DDL.Привязку();
ЯОД.Предметы.Insert(0, new ListItem ("--Select--", " 0"));
спицы.Рядом();
}


охраняемых недействительными Chekddl_SelectedIndexChanged1(объект отправителя, EventArgs в электронной)
{
//Что пришло, чтобы получить идентификатор этого выбранного элемента
}


<asp:TemplateField HeaderText= "навыки" >
< edititemtemplate>
&ЛТ;как ASP:dropdownlist с ИД="DropDownList2" атрибут runat="сервер" OnSelectedIndexChanged="Chekddl_SelectedIndexChanged" autopostback элемента управления="правда" и GT;




& lt;itemtemplate>
&ЛТ;АСП:метка идентификатор="Label4" атрибут runat="сервер" текст=в'<%#Ивала("поле DepartmentID") %&ГТ; в' >



& lt;footertemplate>
&ЛТ;как ASP:dropdownlist с ИД="DropDownList3" атрибут runat="сервер" OnSelectedIndexChanged="Chekddl2_SelectedIndexChanged" &ГТ;





Karthik_Mahalingam

у вас есть team viewer?

Member 12605293

Нет карти :( я нахожусь в офисе

Member 12605293

Код работает единственное что нужно это получить идентификатор вместо имени

Karthik_Mahalingam

если яод яод потом.значение (если идентификатор находится в поле )

Member 12605293

Я не понимаю вас сэр

Member 12605293

Должен ли я сделать что-то подобное

protected void ddlitem_SelectedIndexChanged(отправитель объекта, GridViewRowEventArgs e)
{
Dropdownlist для ДДЛ = (dropdownlist для)Эл.Подряд.FindControl("DropDownList2");
if (ddl != null)
{
DataTable dt = новый DataTable();
спицы.Открыть();
SqlCommand cmd = new SqlCommand ("Select Departmentid from Department2", cn);
SqlDataAdapter da = новый SqlDataAdapter(cmd);
да.Заполнить(ДТ);
ddl. DataSource = dt;
ddl. DataValueField = " Departmentid";
спицы.Рядом();
}
}

Karthik_Mahalingam

Выберите DepartmentName, Departmentid из Department2

инструкции DDL.DataTextField = "Кафедраимя";

Member 12605293

Да вот так

protected void gvDetails_OnRowDataBound(отправитель объекта, GridViewRowEventArgs e)
{
если (электронная.Подряд.RowType == DataControlRowType.Нижний колонтитул)
{
DropDownList ddlDesignation = (DropDownList)e. Row.FindControl ("DropDownList3");
DataTable dt = новый DataTable();
спицы.Открыть();
SqlCommand cmd = new SqlCommand ("Select Departmentid, DepartmentName from Department2", cn);
SqlDataAdapter da = новый SqlDataAdapter(cmd);

да.Заполнить(ДТ);
спицы.Рядом();
ddlDesignation.Источник данных = dt;
ddlDesignation.DataTextField = " Departmentid";
ddlDesignation.DataValueField = " Имя Отдела";
ddlDesignation.Привязку();
ddlDesignation.Предметы.Insert(0, new ListItem ("--Select--", " 0"));
спицы.Рядом();
}
Dropdownlist для ДДЛ = (dropdownlist для)Эл.Подряд.FindControl("DropDownList2");
if (ddl != null)
{
DataTable dt = новый DataTable();
спицы.Открыть();
SqlCommand cmd = new SqlCommand ("Select Departmentid, DepartmentName from Department2", cn);
SqlDataAdapter da = новый SqlDataAdapter(cmd);
да.Заполнить(ДТ);
ddl. DataSource = dt;
ddl. DataValueField = " Departmentid";
инструкции DDL.DataTextField = "Кафедраимя";
инструкции DDL.Привязку();
ЯОД.Предметы.Insert(0, new ListItem ("--Select--", " 0"));
спицы.Рядом();
}


// Но что же происходит внутри выбранного индекса???

Karthik_Mahalingam

почему вам нужно событие selectedindexchange.

Member 12605293

: / Оооо. тогда как я могу получить идентификатор, выбрав имя?

Karthik_Mahalingam

вы что-то делаете на selectedindex change evnt ?

Member 12605293

При выборе имени вместо имени должен отображаться идентификатор

Karthik_Mahalingam

это очень просто, я не знаю, почему вы так сильно боретесь с этим.

Member 12605293

Мой вопрос заключается в том, что выпадающий список показывает названия категорий..
Машина1
Компьютер2
Машина 3
Машина 4

Например, я выбираю "Machine4", я должен получить только идентификатор в моем текстовом поле "4", а не " Machine4"

Karthik_Mahalingam

тхт.Текст = код DDL.selectedValue;

Member 12605293

<asp:TemplateField HeaderText= "навыки" >
< edititemtemplate>
&ЛТ;как ASP:dropdownlist с ИД="DropDownList2" атрибут runat="сервер" autopostback элемента управления="правда" и GT;




& lt;itemtemplate>
&ЛТ;АСП:метка идентификатор="Label4" атрибут runat="сервер" текст=в'<%#Ивала("поле DepartmentID") %&ГТ; в' >



& lt;footertemplate>
&ЛТ;как ASP:dropdownlist с ИД="DropDownList3" атрибут runat="сервер" OnSelectedIndexChanged="Chekddl_SelectedIndexChanged" &ГТ;







Там нет texbox сэр

Karthik_Mahalingam

использовать

 <pre>  
к почтовому коду.

Member 12605293

ОК Картик

Karthik_Mahalingam

не используйте сообщение обратно внутри сетки, это будет работать странно,
использование сценариев на стороне клиента

Member 12605293

Что я должен изменить в этом

<asp:TemplateField HeaderText= "навыки" >
< edititemtemplate>
&ЛТ;как ASP:dropdownlist с ИД="DropDownList2" атрибут runat="сервер" autopostback элемента управления="правда" и GT;




& lt;itemtemplate>
&ЛТ;АСП:метка идентификатор="Label4" атрибут runat="сервер" текст=в'<%#Ивала("поле DepartmentID") %&ГТ; в' >



& lt;footertemplate>
&ЛТ;как ASP:dropdownlist с ИД="DropDownList3" атрибут runat="сервер" OnSelectedIndexChanged="Chekddl_SelectedIndexChanged" &ГТ;









protected void gvDetails_OnRowDataBound(отправитель объекта, GridViewRowEventArgs e)
{
если (электронная.Подряд.RowType == DataControlRowType.Нижний колонтитул)
{
DropDownList ddlDesignation = (DropDownList)e. Row.FindControl ("DropDownList3");
DataTable dt = новый DataTable();
спицы.Открыть();
SqlCommand cmd = new SqlCommand ("Select Departmentid, DepartmentName from Department2", cn);
SqlDataAdapter da = новый SqlDataAdapter(cmd);

да.Заполнить(ДТ);
спицы.Рядом();
ddlDesignation.Источник данных = dt;
ddlDesignation.DataValueField = " Departmentid";
ddlDesignation.DataTextField = " DepartmentName";
ddlDesignation.Привязку();
ddlDesignation.Предметы.Insert(0, new ListItem ("--Select--", " 0"));
спицы.Рядом();
}
Dropdownlist для ДДЛ = (dropdownlist для)Эл.Подряд.FindControl("DropDownList2");
if (ddl != null)
{
DataTable dt = новый DataTable();
спицы.Открыть();
SqlCommand cmd = new SqlCommand ("Select Departmentid, DepartmentName from Department2", cn);
SqlDataAdapter da = новый SqlDataAdapter(cmd);
да.Заполнить(ДТ);
ddl. DataSource = dt;
ddl. DataValueField = " Departmentid";
инструкции DDL.DataTextField = "Кафедраимя";
инструкции DDL.Привязку();
ЯОД.Предметы.Insert(0, new ListItem ("--Select--", " 0"));
спицы.Рядом();
}

Member 12605293

Привет У меня есть этот кусок кода
Label Text = (Label)e. Row.FindControl ("Label4");
Текст.Текст = ddlDesignation.SelectedValue;

Где я должен использовать это

Karthik_Mahalingam

таким образом, вы хотите обновить метку в строке при изменении выпадающего списка

Karthik_Mahalingam

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script>
        function change(obj) {
            debugger;
            var value = obj.value;
            var label = obj.parentElement.parentElement.getElementsByClassName('ClasslabelID1')[0];
            label.innerText = value;
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <asp:GridView ID="gv" runat="server" AutoGenerateColumns="false">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:DropDownList onchange="change(this)" runat="server">
                            <asp:ListItem Value="0" Text="Select" />
                            <asp:ListItem Value="1" Text="One" />
                            <asp:ListItem Value="2" Text="Two" />
                        </asp:DropDownList>
                    </ItemTemplate> 
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label CssClass="ClasslabelID1"   runat="server"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

    </form>
</body>
</html>



обратитесь к образцу и попробуйте..

Karthik_Mahalingam

 protected void Page_Load(object sender, EventArgs e)
        {
            gv.DataSource = "1,2,3".Split(',');
            gv.DataBind();

        }

Member 12605293

Спасибо Сэр

Karthik_Mahalingam

добро пожаловать

Member 12605293

Сэр
Я использовал jquery для создания выпадающего списка Multiselect

$(function () {
        $('[id*=DropDownList3]').multiselect({
            includeSelectAllOption: true
        });
    });

<asp:TemplateField HeaderText="Skills">  
                            <EditItemTemplate>  
                                <asp:DropDownList ID="DropDownList2" runat="server"  >  
  
                                     
                                </asp:DropDownList>  
                            </EditItemTemplate>  
                            <ItemTemplate>  
                                <asp:Label ID="Label4" runat="server" Text='<%#Eval("Departmentid") %>' >  
                                </asp:Label>  
                            </ItemTemplate> 
                
                <FooterTemplate>
                            <asp:DropDownList ID="DropDownList3" runat="server" OnSelectedIndexChanged="dd1_selectedindexchanged"  >  
  
                                     
                                </asp:DropDownList> 
                            
                        </FooterTemplate> 
                        </asp:TemplateField>  

Karthik_Mahalingam

хорошо, затем изучите плагин Multiselect jquery.

Member 12605293

У меня есть проблема в этом

Он получает сообщение обратно, и я могу выбрать только одно значение в ddl,оно работает как переключатель.

Karthik_Mahalingam

ладно

Member 12605293

Как сделать множественный выбор в этом случае

Member 12605293

script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<link href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.3/css/bootstrap.min.css"
    rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.3/js/bootstrap.min.js"></script>
<link href="http://cdn.rawgit.com/davidstutz/bootstrap-multiselect/master/dist/css/bootstrap-multiselect.css" rel="stylesheet" type="text/css" />
<script src="http://cdn.rawgit.com/davidstutz/bootstrap-multiselect/master/dist/js/bootstrap-multiselect.js" type="text/javascript"></script>
<script type="text/javascript">

$(function () {
        $('[id*=DropDownList2]').multiselect({
            includeSelectAllOption: true
        });
    });

    $(function () {
        $('[id*=DropDownList3]').multiselect({
            includeSelectAllOption: true
        });
    });
</script>

<asp:TemplateField HeaderText="Skills">  
                            <EditItemTemplate>  
                                <asp:DropDownList ID="DropDownList2"  OnSelectedIndexChanged="dd2_selectedindexchanged" runat="server" >  
  
                                     
                                </asp:DropDownList>  
                            </EditItemTemplate>  
                            <ItemTemplate>  
                                <asp:Label ID="Label4" runat="server" Text='<%#Eval("Departmentid") %>' >  
                                </asp:Label>  
                            </ItemTemplate> 
                
                <FooterTemplate>
                            <asp:DropDownList ID="DropDownList3"  runat="server" OnSelectedIndexChanged="dd1_selectedindexchanged"  >  
  
                                     
                                </asp:DropDownList> 
                            
                        </FooterTemplate> 
                        </asp:TemplateField> 

Karthik_Mahalingam

ты не должна так спрашивать.

Member 12605293

Привет Картик,
- Простите, сэр.- Не буду.

2 Ответов

Рейтинг:
2

Ramesh Kumar Barik

охраняемых недействительными Bindmachine()
{
DataTable dt = новый DataTable();
спицы.Открыть();
SqlCommand cmd = new SqlCommand ("Select * from Sample6", cn);
SqlDataAdapter da = новый SqlDataAdapter(cmd);
//DataSet ds = новый набор данных();
да.Заполнить(ДТ);
спицы.Рядом();
ddlmachine.Источник данных = dt;
ddlmachine.DataTextField = " CategoryName";
ddlmachine.DataValueField = "CategoryID"; //" CategoryName"; здесь должно быть привязано имя столбца, содержащего идентификатор.
ddlmachine.Привязку();
ddlmachine.Предметы.Insert(0, new ListItem ("--Select--"));

}
Проверьте этот код, он может вам помочь.


Рейтинг:
16

Karthik_Mahalingam

Вам придется использовать machineid чтобы получить значение в качестве идентификатора при выборе

ddlmachine.DataValueField = "machineid";