Как отключить текст кнопки выбора в виде сетки после однократного нажатия на нее? (ASP.NET) - PullRequest
0 голосов
/ 03 декабря 2009

как гласит заголовок: Как отключить текст кнопки выбора в виде сетки после щелчка по нему один раз? Я хочу щелкнуть по нему один раз, а затем в области «Выделить ячейку» отобразить изображение (а изображение не будет щелкать или связываться с чем-либо).

Есть идеи?

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 голосов
/ 04 декабря 2009

вам понадобится комбинация разметки 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;
}   

так, в разметке ItemTemplate GridView укажите изображение, которым вы хотите заменить кнопку «Выбрать», но сделайте его невидимым, затем отключите кнопку «Выбрать» вместо изображения, поменяв местами видимость между обоими объектами в методе обработчика событий gvSample_SelectedIndexChanged в коде, который запускается при нажатии кнопки «Выбрать». Поскольку FindControl возвращает объекты типа Control, вам придется привести к типу LinkButton вашей кнопки Select.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...