Как получить только идентификатор выбранного значения в 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
Привет Картик,
- Простите, сэр.- Не буду.
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов / OWASP[^]