gpt4 book ai didi

c# - 如何在 onDataBinding 事件期间格式化单个 DropDownlist 项目(颜色等)

转载 作者:可可西里 更新时间:2023-11-01 08:04:36 28 4
gpt4 key购买 nike

我有一个绑定(bind)到 ObjectDataSource 的基本 DropDownList:

<asp:DropDownList ID="DropDownList1" runat="server" 
AutoPostBack="True" DataSourceID="objDataSource1"
DataTextField="FieldName" DataValueField="FieldID" />

它从中接收 DataTextFieldDataValueField 值的 DataTable 还返回有关记录的一些其他有趣信息。为简单起见,说Active = Y/N

我想做的是根据 DataSource 结果中的 Active 字段设置 DropDownList Item 的背景颜色属性。此外,我想在将 DropDownList 绑定(bind)到数据时“在同一个过程中”执行此操作。所以我的猜测是它必须在 OnDataBound 期间发生。

我已经知道/尝试过的事情:

  1. 稍后我可以返回并循环浏览 DropDownList 项目。但它会涉及嵌入循环并重新访问 DataTable 行,而且看起来效率很低

     int row;
    for (row = 0; row < DropDownList1.Items.Count - 1; row++)
    {
    [[if this row = that data row]]
    DropDownList1.Items[row].[[DoStuffHere, etc.]]
    }
  2. 我们已经通过访问 GridViewRowEventArg 对 GridView OnRowDataBound 事件执行了类似的操作。我似乎缺少的是 OnDropDownListItemBound 事件,可以这么说。

希望我的表述清晰简洁。似乎应该很容易...

最佳答案

您不能在 OnDataBinding 期间执行此操作,因为数据尚未实际绑定(bind)。您最好的选择是 (1),即使用 OnDataBound 并循环遍历项目。

protected void DropDownList1_DataBound(object sender, EventArgs e)
{
foreach(ListItem myItem in DropDownList1.Items)
{
//Do some things to determine the color of the item
//Set the item background-color like so:
myItem.Attributes.Add("style","background-color:#111111");
}
}

关于c# - 如何在 onDataBinding 事件期间格式化单个 DropDownlist 项目(颜色等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2609344/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com