asp.net将查询输出绑定到gridview中的下拉列表中
这适用于票务系统,票务处于不同状态,如“打开、拒绝、关闭、已解决…” 在asp.net中,我有一个gridview,在gridview中有文本框和下拉列表。 我可以从数据库中获取输出,并在gridview中填充它,还可以显示下拉列表中的内容。 如何将网格中dropdownlist的数据绑定到查询输出的数据。如果票证关闭,则应选择关闭;如果票证被拒绝,则应选择拒绝asp.net将查询输出绑定到gridview中的下拉列表中,asp.net,gridview,drop-down-menu,Asp.net,Gridview,Drop Down Menu,这适用于票务系统,票务处于不同状态,如“打开、拒绝、关闭、已解决…” 在asp.net中,我有一个gridview,在gridview中有文本框和下拉列表。 我可以从数据库中获取输出,并在gridview中填充它,还可以显示下拉列表中的内容。 如何将网格中dropdownlist的数据绑定到查询输出的数据。如果票证关闭,则应选择关闭;如果票证被拒绝,则应选择拒绝 在onrow命令中,我从另一个表中获取数据并填充到下拉列表中。这是完整的状态列表,如“oopen、rejected、closed、re
在onrow命令中,我从另一个表中获取数据并填充到下拉列表中。这是完整的状态列表,如“oopen、rejected、closed、resolved..”您的问题缺少详细信息,例如您在gridview中使用了什么标记,以及在RowDataBound事件中使用了什么代码 因此,我提供了一个示例答案,您可以轻松地适应您的情况 我假设您有一个id为
GridView1
的gridview,其中包含以下ItemTemplate(其他列已被省略,因为不需要它们来理解此方法)
模板中应该有一个隐藏字段,以便存储行的当前状态;另外,当您绑定gridview时,您应该得到一个名为Status
的列
示例标记
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
OnRowDataBound="GridView1_OnRowDataBound">
<Columns>
<asp:TemplateField HeaderText = "Status">
<ItemTemplate>
<asp:HiddenField ID="hfStatus" runat="server" Value='<%# Eval("Status") %>' />
<asp:DropDownList ID="ddlStatus" runat="server">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
我曾经使用过此代码,现在可以使用了: 在asp文件中: 'Visible=“false”/ 在.cs文件中 字符串currentStatus=(e.Row.FindControl(“lblStatus”)作为标签);
ddlStatus.Items.FindByValue(currentStatus).Selected=true 在绑定gridview时,您是否获得了票证的状态?否,我获得了特定票证的状态,取而代之的是DropDownList中的所有值签出我的答案,您需要根据该答案调整代码。如果在绑定gridview时未获取状态,则必须从当前的数据库中获取行在RowDataBound事件中的状态。否则,您将永远无法实现您的要求。您下面的代码使其工作正常//在DropDownList字符串currentStatus=(e.Row.FindControl(“hfStatus”)中选择状态作为HiddenField)。值;ddlStatus.Items.FindByValue(currentStatus).Selected=true;
protected void GridView1_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//Find the DropDownList in the Row
DropDownList ddlStatus = (e.Row.FindControl("ddlStatus") as DropDownList);
ddlStatus.DataSource = GetStatusDropDownListData();
ddlStatus.DataTextField = "Status";
ddlStatus.DataValueField = "Status";
ddlStatus.DataBind();
//Select the Status in DropDownList
string currentStatus = (e.Row.FindControl("hfStatus") as HiddenField).Value;
ddlStatus.Items.FindByValue(currentStatus).Selected = true;
}
}