C# 在gridview Asp.Net中使用Dropdownlist?
我想在gridview上使用dropdownlist。。。我有以下来自asp.net的代码C# 在gridview Asp.Net中使用Dropdownlist?,c#,asp.net,gridview,html-select,C#,Asp.net,Gridview,Html Select,我想在gridview上使用dropdownlist。。。我有以下来自asp.net的代码 <asp:GridView ID="grdvEventosVendedor" runat="server" AllowPaging="True" AutoGenerateColumns="False" CellPadding="4" DatakeyNames="idCita" EmptyDataText="No Hay Eventos
<asp:GridView ID="grdvEventosVendedor" runat="server" AllowPaging="True"
AutoGenerateColumns="False" CellPadding="4" DatakeyNames="idCita"
EmptyDataText="No Hay Eventos Para Este Vendedor" ForeColor="#333333"
GridLines="None" AllowSorting="True"
onpageindexchanging="grdvEventosVendedor_PageIndexChanging"
onrowcommand="grdvEventosVendedor_RowCommand"
onsorting="grdvEventosVendedor_Sorting" CellSpacing="1" HorizontalAlign="Center">
<AlternatingRowStyle BackColor="White" ForeColor="#284775"/>
<Columns>
<asp:TemplateField HeaderText="" ItemStyle-Width="35px">
<ItemTemplate>
<asp:ImageButton ID="imgBtnEdicEvento" runat="server"
CommandArgument='<%# Eval("idCita")%>' CommandName="Edicion"
Height="32px" ImageUrl="~/img/pencil_32.png" Width="32px" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="" ItemStyle-Width="35px">
<ItemTemplate>
<asp:ImageButton ID="imgBtnDelete" runat="server"
CommandName="Borrar"
ImageUrl="~/img/1385_Disable_16x16_72.png"
onclientclick="return confirm('¿Desea eliminar el registro?');"
CommandArgument='<%# Eval("idCita")%>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Cliente" HeaderText="Cliente" InsertVisible="False" ReadOnly="True" SortExpression="Cliente" ItemStyle-Width="50px" />
<asp:BoundField DataField="Empresa" HeaderText="Empresa" InsertVisible="False" ReadOnly="True" SortExpression="Empresa" ItemStyle-Width="50px"/>
<asp:BoundField DataField="Telefono" HeaderText="Telefono" InsertVisible="False" ReadOnly="True" SortExpression="Telefono" ItemStyle-Width="50px"/>
<asp:BoundField DataField="Nextel" HeaderText="Nextel" InsertVisible="False" ReadOnly="True" SortExpression="Nextel" ItemStyle-Width="50px"/>
<asp:BoundField DataField="Tipo" HeaderText="Tipo" InsertVisible="False" ReadOnly="True" SortExpression="Tipo" ItemStyle-Width="50px"/>
<asp:BoundField DataField="Descripcion" HeaderText="Descripcion" InsertVisible="False" ReadOnly="True" SortExpression="Descripcion" ItemStyle-Width="100px"/>
<asp:TemplateField HeaderText="Fecha" SortExpression="Fecha" ItemStyle-Width="50px">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Fecha", "{0:dd/MM/yyyy}")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="tbxFecha" runat="server" Text='<%#Bind("Fecha","{0:dd/MM/yyyy}") %>' ValidationGroup="gpEdicionAgenda">
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="HoraInicio" HeaderText="Hora" InsertVisible="False" ReadOnly="True" SortExpression="HoraInicio" ItemStyle-Width="50px"/>
<asp:BoundField DataField="Lugar" HeaderText="Lugar" InsertVisible="False" ReadOnly="True" SortExpression="Lugar" ItemStyle-Width="50px"/>
<asp:TemplateField HeaderText="Estado" ItemStyle-Width="50px">
<ItemTemplate>
<asp:DropDownList ID="dpdListEstatus" runat="server">
<asp:ListItem>Pendiente</asp:ListItem>
<asp:ListItem>Atendido</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="CRM" ItemStyle-Width="25px">
<ItemTemplate>
<asp:ImageButton ID="imgBtnCRM" runat="server"
CommandArgument='<%# Eval("IdCliente")%>' CommandName="CRM"
ImageUrl="~/img/activar.png" Width="16px" Height="16px" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="VM" ItemStyle-Width="25px">
<ItemTemplate>
<asp:ImageButton ID="imgBtnVerMas" runat="server"
CommandArgument='<%# Eval("IdCliente")%>' CommandName="VerMas"
ImageUrl="~/img/search.png" Width="16px" Height="16px" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#999999" Font-Size="Small" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" Font-Size="Larger" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" HorizontalAlign="Center" Font-Size="Small" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
悬垂
阿滕迪多
它所说的部分就是我想要ddl的部分
您可能还注意到,我总共使用了4个按钮来编辑、删除等。。。
然而我想那是另一个故事
我想让它做几件事。。。首先,你会注意到我的dropdownlist有两个值。。。这是因为我从一个查询中得到一个数据源,这是本专栏可以得到的两个可能的值
所以#1应该是。。。如何确保Ddl的选定值是我从查询中获得的值
#2我可以手动更改ddl的值,因此我希望它进行回发并使用新值更新该特定行(我需要回发的原因是,我可以触发ddl ONSELECTEDINDEX更改,因此使用cs文件创建新查询,更新行,然后再次刷新gridview)
我想所有这些可能都与rowcommand有关,就像其他4个按钮的工作方式一样
我在这个问题上使用C#,所以如果你能帮助我使用C#会很有帮助,如果你的方法涉及到cs文件
谢谢您应该在GridView上使用OnRowDatabound事件。比如:
<asp:GridView ID="grdvEventosVendedor" OnRowDatabound="grdvEventosVendedor_RowDataBound">
<asp:TemplateField HeaderText="Estado" ItemStyle-Width="50px">
<ItemTemplate>
<asp:DropDownList ID="dpdListEstatus" runat="server" OnSelectedIndexChanged="dpdListEstatus_SelectedIndexChanged" AutoPostBack="True">
<asp:ListItem>Pendiente</asp:ListItem>
<asp:ListItem>Atendido</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</asp:GridView>
您可以在ASPX代码中的下拉列表中设置SelectedIndexChanged,在该后端代码中,您可以继续您的逻辑。
哦,别忘了在下拉列表中设置autopostback=true 您应该在GridView上使用OnRowDatabound事件。比如:
<asp:GridView ID="grdvEventosVendedor" OnRowDatabound="grdvEventosVendedor_RowDataBound">
<asp:TemplateField HeaderText="Estado" ItemStyle-Width="50px">
<ItemTemplate>
<asp:DropDownList ID="dpdListEstatus" runat="server" OnSelectedIndexChanged="dpdListEstatus_SelectedIndexChanged" AutoPostBack="True">
<asp:ListItem>Pendiente</asp:ListItem>
<asp:ListItem>Atendido</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</asp:GridView>
您可以在ASPX代码中的下拉列表中设置SelectedIndexChanged,在该后端代码中,您可以继续您的逻辑。
哦,别忘了在下拉列表中设置autopostback=true 您可以使用GridView RowDataBound事件访问下拉列表,类似地为dropdownlist设置selectedindexchanged事件 请参阅下面的链接,该链接显示了您将需要的解决方案的基础知识
您可以使用GridView RowDataBound事件访问下拉列表,类似地为dropdownlist设置selectedindexchanged事件 请参阅下面的链接,该链接显示了您将需要的解决方案的基础知识
这就是我为自己所做的:
**来自aspx的代码片段:**
**代码背后的代码片段:**
受保护的void grdSAEdit_行更新(对象发送方,GridViewUpdateEventArgs e)
{
//获取对列表控件的引用
DropDownList ddlRecStatus=(DropDownList)(grdSAEdit.Rows[e.RowIndex].FindControl(“ddlRecStatus”);
//将其添加到参数中
e、 添加(“记录状态”,ddlRecStatus.Text);
}
受保护字符串[]记录状态
{
获取{返回新字符串[]{“A”、“E”、“V”、“Z”};}
}
受保护的int GetSelectedRognettus(对象状态)
{
返回Array.IndexOf(Recs_Status,Status.ToString());
}
这就是我为自己所做的:
**来自aspx的代码片段:**
**代码背后的代码片段:**
受保护的void grdSAEdit_行更新(对象发送方,GridViewUpdateEventArgs e)
{
//获取对列表控件的引用
DropDownList ddlRecStatus=(DropDownList)(grdSAEdit.Rows[e.RowIndex].FindControl(“ddlRecStatus”);
//将其添加到参数中
e、 添加(“记录状态”,ddlRecStatus.Text);
}
受保护字符串[]记录状态
{
获取{返回新字符串[]{“A”、“E”、“V”、“Z”};}
}
受保护的int GetSelectedRognettus(对象状态)
{
返回Array.IndexOf(Recs_Status,Status.ToString());
}
This is what I did that worked for me:
**Snippet from aspx:**
<asp:TemplateField HeaderText="RECORD_STATUS" SortExpression="RECORD_STATUS">
<EditItemTemplate>
<asp:DropDownList runat="server" ID="ddlRecStatus" SelectedIndex='<%# GetselectedRecStatus(Eval("RECORD_STATUS")) %>'
DataSource = '<%# Recs_Status %>' />
</EditItemTemplate>
</asp:TemplateField>
**Snippet from code-behind:**
protected void grdSAEdit_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//Get the refernce to the list control
DropDownList ddlRecStatus = (DropDownList)(grdSAEdit.Rows[e.RowIndex].FindControl("ddlRecStatus"));
// Add it to the parameters
e.NewValues.Add("RECORD_STATUS", ddlRecStatus.Text);
}
protected string[] Recs_Status
{
get { return new string[] { "A", "E", "V", "Z" }; }
}
protected int GetselectedRecStatus(object status)
{
return Array.IndexOf(Recs_Status, status.ToString());
}