1

UserControl の GridView で行を選択すると、このグリッドビューが消えます。

メイン ページ (aspx ページ)

1.1.Html

<body>
    <form id="form1" runat="server">
    <div>
    <asp:PlaceHolder ID="plh" runat="server"></asp:PlaceHolder>
    </div>
    </form>
</body>

1.2.分離コード

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            Test2.Admin.WebUserControl1[] wuc = new Test2.Admin.WebUserControl1[2];
            for (int i = 0; i < 2; i++)
            {
                plh.Controls.Add(new LiteralControl("<div id='dvChannel' runat='server' style='width: 200px;float:left;padding-left:20px;'>"));
                wuc[i] = (Test2.Admin.WebUserControl1)LoadControl("WebUserControl1.ascx");
                wuc[i].ID = "wuc" + i.ToString();
                plh.Controls.Add(wuc[i]);
                plh.Controls.Add(new LiteralControl("</div>"));
            }
        }
    }

ユーザーコントロール

2.1.html

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="Test2.Admin.WebUserControl1" %>
<asp:GridView ID="GridView1" runat="server" AutoGenerateSelectButton="true"
OnSelectedIndexChanged="gvSelected">
</asp:GridView>

2.2.分離コード

protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                var list = (new[] { 
                new { Price = 30 } ,
                new { Price = 30 },
                new { Price = 30 },
                new { Price = 30 }
                });
                GridView1.DataSource = list;
                GridView1.DataBind();
            }
        }
        protected void gvSelected(object sender,EventArgs e)
        {
            GridViewRow row = GridView1.Rows[GridView1.SelectedIndex];
            row.BackColor = Color.Red;//Set red color for this row on gridview
        }

UserControl の GridView で行を選択すると、このグリッドビューが消えます。正しく機能させるにはどうすればよいですか。解決策はありますか?

4

1 に答える 1

0

ポストバックでも GridView を読み込む必要があります。条件を削除してみてください - if (!Page.IsPostBack)

または、else ブロックに別のコード スニペットを記述します - データソースを設定し、グリッドをバインドします。

于 2013-11-27T11:45:48.723 に答える