Pergunta

Eu criei um controle SPGridView em um projeto visual de web part.Este controle exibe todas as pastas dentro de uma biblioteca de documentos.Usei SPBoundField para exibir os dados da coluna. É possível acionar um evento de clique personalizado para um item de coluna na grade?

<SharePoint:SPGridView ID="ShowNode" runat="server" AutoGenerateColumns="false" AllowSorting="true" >
<Columns>
<SharePoint:SPBoundField HeaderText="Name" DataField="Title" HeaderStyle-HorizontalAlign="Left" SortExpression="Name" />
<SharePoint:SPBoundField HeaderText="Type" DataField="Type" HeaderStyle-HorizontalAlign="Left" SortExpression="Type" />
</Columns>
</SharePoint:SPGridView>
Foi útil?

Solução 2

Isso pode ser alcançado pelo evento "OnRowDataBound" junto com o evento "OnSelectedIndexChanged".

<SharePoint:SPGridView ID="ShowNode" runat="server" AutoGenerateColumns="false" AllowSorting="true" OnRowDataBound="OnRowDataBound"
    OnSelectedIndexChanged="OnSelectedIndexChanged">
<Columns>
<SharePoint:SPBoundField HeaderText="Name" DataField="Title" HeaderStyle-HorizontalAlign="Left" SortExpression="Name" />
<SharePoint:SPBoundField HeaderText="Type" DataField="Type" HeaderStyle-HorizontalAlign="Left" SortExpression="Type" />
</Columns>
</SharePoint:SPGridView>

Código do arquivo CS

protected void OnRowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        e.Row.Attributes["onclick"] = Page.ClientScript.GetPostBackClientHyperlink(ShowNode, "Select$" + e.Row.RowIndex);
        e.Row.Attributes["style"] = "cursor:pointer";
    }
}
protected void OnSelectedIndexChanged(object sender, EventArgs e)
{

}

URL de referência - http://www.aspsnippets.com/Articles/Add-Row-Click-event-to-GridView-Rows-in-ASPNet.aspx

Outras dicas

Você pode usar o evento RowCommand do campo Button como a seguir.

 btnRemoveItem = new ButtonField();
           btnRemoveItem.ButtonType = ButtonType.Button;
           btnRemoveItem.Text = "Remove";
           gridList.RowCommand += new GridViewCommandEventHandler(gl_RowCommand);
           gridList.Columns.Add(btnRemoveItem);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top