日期:2014-05-18  浏览次数:20440 次

删除提示问题,有点不太一样
在页面中,有一个table,里面放详细信息,如姓名、年龄、部门、职位什么的,还放有增加,修改,删除近钮。
还有一个gridview,显示所有人员的相关姓名。
当在gridview中选中某行时,table显示选中的详细信息,并可以通过修改,删除该选中信息的内容。
要求:
  当使用删除功能时,要弹出删除提示对话框,但当table中没有显示任何信息时(也就是没有选中gridview的任意行),需弹出"请选择数据"。

问题:当没有选中行时,点删除也弹出了删除提示对话框。

主要代码如下:
 protected void Page_Load(object sender, EventArgs e)
{
  btnDel.Attributes.Add("onClick", "return confirm('确定删除当前记录?');");
}
 protected void btnDel_Click(object sender, EventArgs e)
{
  if (txtTypeNo.Text.Trim() == "" && txtTypeName.Text.Trim() == "")//未选中记录时显示的信息
  { 
  Msg.ShowResult(“请选择记录”,false); //显示
  return;
  }
  ...  
 }

------解决方案--------------------
你好.
請你先寫一個判斷有沒選擇的函數:
以下代碼可以參考一下:

JScript code


<script>
function selCheck()
{
   for(var i=0;i<document.getElementsByTagName("input").length;i++)
   {
      var thisCheckbox=document.getElementsByTagName("input")[i];
      if(thisCheckbox.getAttribute("type")=="checkbox")
      {
         if(thisCheckbox.checked)
         {
            return true;
         }  
      }
   }
   return false;
}
</script>

------解决方案--------------------
只要稍微改動一下這句代碼即可:

C# code


protected void Page_Load(object sender, EventArgs e) 
{ 
    btnDel.Attributes.Add("onClick", "if(!selCheck()){alert('請選擇要刪除的項目');return false}else{return confirm( '确定删除当前记录? ');}"); 
}

------解决方案--------------------
删除确认 是 js 客户端触发 ,而 提示没有选择的信息 是 服务器段发生,当然,会先触发 客户端的 js 
解决办法:
js 实现 判断是否为空选择
------解决方案--------------------
應該在Gridview的selectedIndexChanged事件中添加這個
btnDel.Attributes.Add("onClick", "return confirm( '确定删除当前记录? ');"); 
在Page_Load里寫上
if(Gridview.SelectedIndex==-1)
{
btnDel.Attributes.Remove("onClick");
}
------解决方案--------------------
学习