繁体   English   中英

具有动态行数据类型的Gridview

[英]Gridview with dynamic row datatypes

基本上我是从sql表填充gridview的。 但是问题在于,有时需要将特定列中的数据显示为下拉列表,有时需要显示为文本框。

例如,ColA数据将始终为标签格式。 但是ColB可以是下拉列表或文本框。

ColA   |   ColB
-----------------
label  |  ddlist    
label  |  textbox    
label  |  ddlist

如何动态设置每个ColB行的类型? 我以为可以使用OnRowDatabound来完成,但似乎找不到办法? 这可能吗?

尝试以下操作:对ColB使用TemplateField并放置TextBox和DropdownList

<asp:TemplateField HeaderText="ColB">
    <asp:TextBox runat="server" ID="txtVal" />
    <asp:DropdownList runat="server" ID="drpVal"></asp:DropdownList>
</asp:TemplateField>

在您的gridview的数据绑定中执行此操作

void myGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
        TextBox txtVal = (TextBox)e.Row.FindControl("txtVal");
        DropDownList drpVal = (DropDownList)e.Row.FindControl("drpVal");

        if (txtVal != null && drpVal != null)
        {
            if (condition == true)
            {
                txtVal.Text = "Default value";
                drpVal.Visible = false;
            }
            else
            {
                drpVal.Items.Add("Item1");
                drpVal.Items.Add("Item2");
                drpVal.Items.Add("Item3");
                txtVal.Visible = false;
            }
        }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM