这适用于票务系统,其票证处于不同状态,如“打开,拒绝,关闭,已解决......”
在asp.net中我有一个gridview,在gridview中有文本框和下拉列表。 我可以从数据库中获取输出并在gridview中填充它,并且还会显示下拉列表中的内容。 如何将网格中下拉列表的数据绑定到查询输出的数据。如果票证已关闭,则应选择关闭,如果票证被拒绝,则应选择拒绝。
答案 0 :(得分:0)
您的问题缺少详细信息,例如您用于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>
然后在您绑定行的下拉列表的RowDataBound事件中,您需要获取隐藏字段hfStatus
的值,然后使用此值设置所选的下拉项。
我假设有一个名为GetStatusDropDownListData
的方法可以获取绑定下拉列表的数据。
示例RowDataBound事件
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;
}
}
答案 1 :(得分:0)
我已经使用了这段代码,现在正在使用它:
在asp文件中: 'Visible =“false”/&gt;
<。>在.cs文件中 string currentStatus =(e.Row.FindControl(“lblStatus”)as Label).Text; ddlStatus.Items.FindByValue(currentStatus).Selected = true;