gpt4 book ai didi

javascript - 仅当数据为数字或空时,才会在 GridView 中删除行时触发数据确认

转载 作者:行者123 更新时间:2023-11-30 06:00:28 24 4
gpt4 key购买 nike

我想确认删除显示字段值的行以及一条消息,但这仅在字段包含数字或空值时有效。否则不会触发该事件。

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
DataKeyNames="ID" DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandName="Delete" Text="Delete" OnClientClick='<%# "return ConfirmDel(" + Eval("Fname") + ");" %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Fname" HeaderText="Fname" SortExpression="Fname" />
. . . .
</asp:GridView>

这是javascript

 function ConfirmDel(fname) {
return confirm('Are you sure to delete ' + fname);
}

我搜索了一段时间类似的问题,但没有找到确切的问题。

最佳答案

看起来确实不错。我唯一能想到的是,当 Eval("Fname") 的计算结果为 Null 时,事件不会触发。

我会努力

OnClientClick='<%# "return xx(" + String.IsNullOrEmpty(Eval("Fname").ToString()) ? 
"debug - is this firing" : Eval("Fname") + ");" %>'

显然删除了你让它工作的调试信息

您的 xx 函数也不正确 - 我假设这只是一个剪切和粘贴错误

function xx(fname) {         
return confirm('Are you sure to delete ' + fname);
}

注释结尾

最后 - 我真的会将 xx 的名称更改为更具描述性的名称。我确定这只是调试/演示代码,所以很抱歉将它指向我们。只是为了真正为其他读者打旗。

编辑

我觉得是这样

 OnClientClick="return xx('<%# Eval('Fname') %>');"

注意两个附加的 '。你需要把它作为一个字符串传递,否则你会得到奇怪的效果,这取决于输入的内容。不过我仍然会像以前一样防止空值

此外,Eval 位于错误的位置 - 您正在评估整个 javascript 字符串,但您应该只评估数据字段。

编辑 2

我正在尝试上述方法,但它不起作用。如果我是你,我会放弃使用 eval 在标记中构建 OnClientClick 的想法。在 RowDataBound 事件后面的代码中执行此操作 - 使用 FindControl 方法选择链接。这绝对有效(诚实)

老实说,我认为这是我的最后一句话。祝你好运

几乎是最后一句话 - 为了完整起见,这就是我要做的

void detailsGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string foreName = DataBinder.Eval(e.Row.DataItem, "Fname").ToString();
LinkButton lnkButton = e.Row.FindControl("lnkLinkID") as LinkButton;
lnkButton.OnClientClick = "Delete message to " + foreName
}
}

关于javascript - 仅当数据为数字或空时,才会在 GridView 中删除行时触发数据确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8931665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com