0

基本的に、SQLテーブルからグリッドビューを作成しています。しかし、問題は、特定の列のこのデータをドロップダウン リストとして、場合によってはテキスト ボックスとして表示する必要があることです。

たとえば、ColA データは常にラベル形式になります。ただし、ColB はドロップダウン リストまたはテキスト ボックスにすることができます。

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

各 ColB 行のタイプを動的に設定するにはどうすればよいですか?? OnRowDatabound を使用して実行できるのではないかと考えましたが、方法が見つからないようですか? これは可能ですか?

4

1 に答える 1

0

これを試してください: ColB に TemplateField を使用し、TextBox と DropdownList の両方を配置します。

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

グリッドビューのデータバインドでこれを行います

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;
            }
        }
}
于 2012-09-25T21:07:31.430 に答える