我有一个页面,列出了数据网格中的一堆项目。
每个项目都有一个相应的remove link button
,它会从列表中删除该项目。在我的事件处理程序中 - 项目被删除 - 我检查项目是否是列表中的最后一项。如果它是最后一项,我不进行删除,但发送一个警告框告诉用户该项目无法删除。我不确定如何让C#触发此警报框。
我的代码如下所示:
在我的aspx中,我有一个带有各种链接按钮的数据网格。代码片段如下所示:
<ItemTemplate>
<asp:LinkButton runat="server" ID="Remove"
OnCommand="lnkRemove_Command" CommandArgument='<%# Eval("Id") %>
OnClientClick="return false;">
</asp:LinkButton>
</ItemTemplate>
在我的代码后面,我的事件处理程序看起来像这样:
private List<MyItem> _items;
protected void lnkRemove_Command(object sender, CommandEventArgs e)
{
int ID = Convert.ToInt32(e.CommandArgument);
MyItem item = MyItem.GetItemByID(id); //This gets the item cooresponding to the ID
if (_items.Count != 1)
{
//code to delete item
}
else
{
//Generate an alert box to tell the user that this item cannot be deleted.
//I have tried the following two lines of commented code, which didn't work for me
//Response.Write(@"<script language='javascript'>alert('HERE');</script>");
//Page.ClientScript.RegisterStartupScript(this.GetType(), "hwa", "alert('Hello World');", true);
}
}
此外,值得注意的是,在我的Page_Load
中,我已经做了Context.RegisterResource(this, StyleSheet, Script)
。换句话说,我有工作的JavaScript和CSS,它与MyFile.js中此页面的其他功能的代码协调一致
如果可能的话,我想在MyFile.js中创建一个JS函数,我已经有了各种OnClientClicks等触发的js函数......
是否可以做这样的事情:
in MyFile.js
var GetAlertMessage = function()
{
alert("Can't delete this item");
}
并在我上面列出的C#函数中调用此函数?
提前感谢您的帮助。
答案 0 :(得分:2)
您应该像对待任何其他验证例程一样对待它。应该有客户端验证功能和服务器端验证功能。
客户端验证
在每个可删除项目上添加onclick="ValidateDeletion();"
和class="deleteable-item"
function ValidateDeletion()
{
var itemCount = $(".deleteable-item").length;
if(itemCount == 1)
{
alert("Sorry, you cant delete this item.")
return false;
}
else
{
//let it pass through
}
}