簡體   English   中英

在C#中給gridview列一個別名

[英]Give the gridview columns a alias name in C#

我有一個不是數據源綁定的GridView。 在運行時,此GridView在運行時顯示一些行。 要求用戶在運行時能夠更改列標題文本。 所以我想到了以這種方式實施-

用戶將在列標題上雙擊[或單擊],並且用戶將看到一個文本框,用戶將在其中輸入新文本,一旦用戶離開該文本框,新的列標題文本將被設置為的HeaderText屬性。列。 能做到嗎? 任何人都可以共享示例代碼來達到相同的目的嗎? 我將對你有很大的義務。 任何幫助將是可觀的。

這是我的網格

 <asp:GridView ID="GdvTestData" runat="server" 
        class="table table-striped table-responsive table-hover" 
        onrowdatabound="gv_RowDataBound" 
        PageSize="100" OnSelectedIndexChanged="GdvTestData_SelectedIndexChanged">
                <FooterStyle BorderStyle="Solid" />
</asp:GridView>

這是您可以將別名與以下列綁定的操作:aspx代碼

<asp:DropDownList runat="server" ID="ddlQuery">
            <asp:ListItem Text="Query1" Value="1" Selected="True"></asp:ListItem>
            <asp:ListItem Text="Query2" Value="2"></asp:ListItem>
            <asp:ListItem Text="Query3" Value="3"></asp:ListItem>
        </asp:DropDownList>
        <asp:TextBox runat="server" ID="txtAlias"></asp:TextBox>
        <asp:Button runat="server" ID="btnGetData" Text="GetData" OnClick="btnGetData_Click" />
        <asp:GridView runat="server" ID="gcData"></asp:GridView>

下面的代碼將數據綁定到CS中的網格

protected void btnGetData_Click(object sender, EventArgs e)
        {
            GetData();
        }

        private void GetData()
        {
            SqlConnection con = new SqlConnection();
            con.ConnectionString = "Connection String";

            string Query = string.Empty;
            if (ddlQuery.SelectedValue == "1")
                Query = "SELECT * FROM Table1";
            else if (ddlQuery.SelectedValue == "2")
                Query = "SELECT * FROM Table2";
            else if (ddlQuery.SelectedValue == "3")
                Query = "SELECT * FROM Table3";

            try
            {
                con.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandText = Query;
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);

                DataTable dtFinal = new DataTable();
                foreach (DataColumn cln in dt.Columns)
                {
                    dtFinal.Columns.Add(cln.ColumnName + " " + txtAlias.Text, cln.DataType);
                }
                foreach (DataRow row in dt.Rows)
                {
                    DataRow dr = dtFinal.NewRow();
                    for (int i = 0; i < dtFinal.Columns.Count; i++)
                    {                       
                        dr[i] = row[i];                        
                    }
                    dtFinal.Rows.Add(dr);
                }
                gcData.DataSource = dtFinal;
                gcData.DataBind();
            }
            catch (Exception)
            {
                throw;
            }

        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM