我尝试在gridview的Row_Command事件中执行以下操作。但弹出框永远不会出现,我已经用很多不同的方式尝试过了......但是没有运气。如果有人能看到问题,我真的很感激指针。
protected void Gridview_RowCommand(object sender, GridViewCommandEventArgs e)
{
if(e.CommandName == "Merchant")
{
if (ItemsAvailable)
{
StringBuilder sb = new StringBuilder();
MyClass class = new MyClass();
TList<LineItems> otherItems = MyClass.GetItems(id);
bool IsNotAvailable = false;
foreach (LineItems item in otherItems)
{
Merchandise skuMerchandise = skuMerchandise.GetMerchandise(otherItems.mid);
if (skuMerchandise != null)
{
if (skuMerchandise.AvailableItems <= 0)
{
sb.Append(OtherItems.Name);
sb.Append(Environment.NewLine);
IsNotAvailable = true;
}
}
}
if (IsNotAvailable)
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "key",
"function Redirect() {location.href = 'homePage.aspx';}
if(confirm('The items : "+sb.ToString()+" will arrive in 1 month.
Do you wish to continue?') == true){Redirect();};", true);
}
}
}
每次我点击按钮,它就像没有任何东西一样传递..当我添加一个断点时,IsNotAvailable为真,从不提示eveb。
答案 0 :(得分:1)
你可以采用更简单的方式,
在设计/单独的脚本文件中定义javascript函数,使其接受item的名称。例如。 myFunction的(ITEMNAME)
在您的CS文件中,只需添加对该函数的调用,
if(IsNotAvailable) { Page.ClientScript.RegisterClientScriptBlock(this.GetType(),“key”, “myFunction('”+ itemName +“') } }
它会使事情变得更简单,您将能够确认这是一个Javascript问题还是您通过CS文件编写它的问题。
<强>更新强>
你的第一个目标应该是确保你的JS功能正在为你工作,所以在此之前,在空的html文件中添加以下代码并运行它,
<script type='text/javascript'>
ItemNotInStock('item');
function ItemNotInStock(itemName)
{
var message = "The following items are no longer in stock :" + itemName + ".
Would you like to continue?";
if (confirm(message) == true)
{ location.href = "homePage.aspx"; }
}
如果您正确重定向,请执行下面提到的操作。
在您的设计文件中定义以下javascript(在本地测试,在chrome中为我工作)
<script type='text/javascript'>
function ItemNotInStock(itemName)
{
var message = "The following items are no longer in stock :" + itemName + ".
Would you like to continue?";
if (confirm(message) == true)
{ location.href = "homePage.aspx"; }
}
在您的C#代码中,添加以下行
if (IsNotAvailable)
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "key",
string.Format("ItemNotInStock('{0}');", itemName);
}
}
答案 1 :(得分:0)
确保使用您选择的浏览器的开发者工具中提供的断点执行JavaScript代码,例如Chrome Developer Tools: Breakpoints
顺便说一句:如果您在下一行立即丢弃商品,为什么要创建商品实例?