提高从Javascript DataGrid的ItemCommand事件

我使用一个DataGrid来显示从数据库中检索到的数据,我想知道是否可以使用JavaScript来提高电网的ItemCommand事件。

下面的代码片段显示大致我试图为DIV removeProductButton onclick处理程序内完成。 我不想用asp:按钮或ASP:LinkBut​​ton的作为目前的DIV的外观和感觉是使用CSS控制,无论代码应工作用于创建可点击的触发器,以便将来类型的HTML元素外观的定制。

<asp:datagrid id="itemGrid" runat="server" cellPadding="0" AutoGenerateColumns="False" GridLines="None"> <Columns> <asp:TemplateColumn> <ItemTemplate> <div class="items"> <div class="product_title"><%#Eval("ItemID")%>.&nbsp;<%#Eval("ItemDescription")%></div> <div class="product_image"> <img id="productImage_<%#Eval("ItemID")%>" src="<%#Eval("ThumbnailURL")%>" /> </div> <div class="buttons"> <div id="removeProductButton" class="buttonStandard" onclick="Do Something HERE...">Remove</div> </div> </div> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:datagrid>

我已经使用网格的ItemCreated事件下面的代码尝试,但没能得到它的工作

private void itemGrid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { dynamic itemData = e.Item.DataItem; HtmlGenericControl removeProductButton = (HtmlGenericControl)e.Item.FindControl("removeProductButton"); removeProductButton.Attributes.Add("onclick", ClientScript.GetPostBackEventReference(removeProductButton, "")); } }

任何帮助将不胜感激。

--------------解决方案-------------

添加一个隐藏按钮将与ItemTemplate中所需的CommandName:

<asp:Button
ID="removeProductButton_hidden"
runat="server"
style="display:none;"
CommandName="YourCommandName"
Text="" />

请确保您的“删除”格有=“服务器”属性:

<div ID="removeProductButton" runat="server" class="buttonStandard">Remove</div>

摆脱电网ItemCreated处理程序和创建网格的ItemDataBound处理程序如下:

public void grd_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
HtmlGenericControl removeProductButton = (HtmlGenericControl)e.Item.FindControl("removeProductButton");

Button removeProductButtonHidden = (Button)e.Item.FindControl("removeProductButton_hidden");

removeProductButton.Attributes.Add("onclick", ClientScript.GetPostBackEventReference(removeProductButtonHidden, ""));
}
}

所以整个电网的定义是这样的:

<asp:DataGrid
runat="server"
ID="itemGrid"
OnItemCommand="itemGrid_ItemCommand"
OnItemDataBound="itemGrid_ItemDataBound">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Button
ID="removeProductButton_hidden"
runat="server"
style="display:none;"
CommandName="YourCommandName"
Text="" />
<div class="items">
<div class="buttons">
<div ID="removeProductButton" runat="server" class="buttonStandard">Remove</div>
</div>
</div>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>

分类:C# 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 4.343 (s). 10 q(s)