Como disparar um evento de clique para um item de coluna no controle SPGridView
-
29-09-2020 - |
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>
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