如何在单击一次后禁用gridview中的选择按钮文本? (ASP.NET)

时间:2009-12-03 02:13:59

标签: asp.net gridview select

正如标题所示,如何在点击一次后禁用gridview中的选择按钮文本?我想点击一次,然后选择单元格区域渲染图像(图像不可点击或链接到任何东西)。

有什么想法吗?

protected void Page_Load(object sender, EventArgs e)
{
    dn = new holdDataContext();
    if (!(Page.IsPostBack))
    {

        //    GridView1.DataSource = dn.tennis.ToList();
        //  GridView1.DataBind();
        GridView1.DataSource = from c in dn.tennis
                               orderby c.ID descending
                               select c;

        GridView1.DataBind();
    }
}

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    DataSet ds = null;
    if (Session["oro"] == null)
    {
        ds = new DataSet();
        DataTable dt = new DataTable();
        dt.Columns.Add(new DataColumn("Name"));
        dt.Columns.Add(new DataColumn("Description"));
        ds.Tables.Add(dt);
        Session["oro"] = ds;
    }
    else
    {
        ds = (DataSet)Session["oro"];
    }
    DataRow row = ds.Tables[0].NewRow();
    row["Name"] = GridView1.Rows[GridView1.SelectedIndex].Cells[2].Text;
    row["Description"] = GridView1.Rows[GridView1.SelectedIndex].Cells[3].Text;
    ds.Tables[0].Rows.Add(row);

}

1 个答案:

答案 0 :(得分:0)

你需要结合使用aspx标记和代码隐藏:

ASPX:

<asp:GridView ID="gvSample" runat="server" 
        DataKeyNames="CustomerID" 
        onselectedindexchanged="gvSample_SelectedIndexChanged">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:LinkButton ID="btnSelect" runat="server" CommandName="Select" Text="Select"></asp:LinkButton>
                    <asp:Image ID="imgSelect" runat="server" ImageUrl="~/imgs/whatever.jpg" Visible="false" />
                </ItemTemplate>

代码隐藏:

protected void gvSample_SelectedIndexChanged(object sender, EventArgs e) {
    LinkButton linkButton = gvSample.SelectedRow.Cells[0].FindControl("btnSelect") as LinkButton;
    Image imgWhatever = gvSample.SelectedRow.Cells[0].FindControl("imgSelect") as Image;
    linkButton.Enabled = false;
    linkButton.Visible = false;
    imgWhatever.Visible = true;
}   

因此,在GridView的ItemTemplate标记中,指定要替换“选择”按钮的图像但使其不可见,然后通过在事件处理程序方法中交换两个对象之间的可见性来禁用“选择”按钮代替图像代码隐藏中的gvSample_SelectedIndexChanged,这是单击“选择”按钮时触发的内容。由于FindControl返回Control类型的对象,因此您必须转换为Select按钮的LinkBut​​ton类型。

相关问题