test.aspx:
<asp:datagrid id="dg" runat="server">
<Columns>
<asp:BoundColumn DataField="name" HeaderText="姓名"></asp:BoundColumn>
<asp:ButtonColumn id="idDel" Text="删除" CommandName="Delete"></asp:ButtonColumn>
</Columns>
</asp:datagrid>test.aspx.vb:
 Private Sub dg_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dg.ItemCreated
 Select Case e.Item.ItemType
  Case                                             ListItemType.Item,ListItemType.AlternatingItem,ListItemType.EditItem, ListItemType.SelectedItem
                Dim myDeleteButton As LinkButton
                myDeleteButton = CType(e.Item.Cells(e.Item.Cells.Count - 1).Controls(0), LinkButton)
                If Not myDeleteButton Is Nothing Then
                    myDeleteButton.Attributes.Add("onclick", "return confirm('您真的要删除第 " + (e.Item.ItemIndex + 1).ToString + " 行吗?');")
                End If
 End Select
End Sub
问题是,当我在程序中把idDel的enabled设置False后,鼠标点上去还会弹出确认框,请问如何让它在enabled为False不再弹出来啊?

解决方案 »

  1.   

    上面的描述不太清楚,我是在datagrid中有一个idDel的Linkbutton,我在ItemCreated中设置它的弹出确认框,在程序处理时,我会根据要求把idDel的enabled属性设置为True或者False,问题是,当我在程序中把idDel的enabled设置False后,鼠标点上去还会弹出确认框,请问如何让它在enabled为False不再弹出来啊?
      

  2.   

     myDeleteButton.Attributes.Add("onclick",   "return  if(!this.disabled) confirm('您真的要删除第   "   +   (e.Item.ItemIndex   +   1).ToString   +   "   行吗?');") 
      

  3.   

    to hbzy123, 我试了,不行啊,这样做了以后,当idDel的enabled为True也不弹出来了。
      

  4.   

    当我在程序中把idDel的enabled设置False后,鼠标点上去还会弹出确认框
    ----------------------------------------
    正常情況不會有此問題,可能是你將idDel的enabled设置為False的代碼並未執行,LZ應該檢查下。
      

  5.   

    to boblaw: 代码肯定执行了,因为idDel 已经变灰了,可鼠标点上去还会弹出确认框,只我点确认时并不执行删除操作。
      

  6.   

    to lin_shengyong:
    那么能否將idDel屬性為false時,瀏覽器中相關idDel的html貼出來?
    因為我的vs2005是直接將設置disabled,所以不會彈出確認框。如下:        <a onclick="return confirm('刪除嗎?');" id="LinkButton1" disabled="disabled" style="z-index: 103; left: 237px;
                position: absolute; top: 41px">LinkButton</a>
      

  7.   

    当按钮为enabled 你有没有判断程序?
      

  8.   

    浏览器的HTML代码如下:
    <a onclick="return confirm('您真的删除吗?');" id="Mydatalist_ctl01_zxDel" disabled="disabled">删除</a>
      

  9.   

    放到RowDataBound事件看看 !!!
    一般情况下是不会发生你说的情况
    把你如何把idDel的enabled设置False 的代码出来
      

  10.   

    另外,我也试了下直接设置为false,确认不会弹出,但我在程序中设置时,就会弹出了。
      

  11.   

    设置的代码如下:
    <asp:LinkButton id="zxDel" runat="server" Enabled=<%#CBool(ViewState("bImpRole"))%> Text="删除" CommandName="Delete" />程序中在Page_Load中判断用户属性,并根据属性设置ViewState("bImpRole")的值为“True”或“False”
      

  12.   

    Enabled= <%#CBool(ViewState("bImpRole"))%>在Attributes.Add之后才执行吧
      

  13.   

    private void DataGridList_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if (e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
    {
    ((System.Web.UI.WebControls.LinkButton)e.Item.Cells[7].Controls[0]).Attributes.Add("onclick","return confirm('你确认要删除吗?');");
    }
    }
      

  14.   

    可以试试再在itemCommand中加一个条件判断.判断你的linkButton是否当前是可用的.如果可用则弹出提示框
    如果不可用则直接返回false;
    可以参考下以下代码
    Protected Sub data_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles data.ItemCommand
    if(控件可用)
      myDeleteButton.Attributes.Add("onclick",   "return   confirm('您真的要删除第   "   +   (e.Item.ItemIndex   +   1).ToString   +   "   行吗?');") 
    else
    myDeleteButton.Attributes.Add("onclick",   "return false") ;
        End Sub
      

  15.   

    to whb147,鼠标移上去不是手形,是I形,但按左键它会弹出来的。
    to yuan74521940,放在ItemDataBound中也是一样的。我用的是dataList。
      

  16.   

    將前臺代碼改為如下,即OKmyDeleteButton.Attributes.Add("onclick","if (!this.disabled){return confirm('刪除嗎?');}");
      

  17.   

    to symbol441:这个方法我也试了,判断enabled属性是否为false,再添加Attributes.Add,但还是不行。
      

  18.   

    略作修改myDeleteButton.Attributes.Add("onclick","if (!this.disabled){return confirm('您真的要删除第" + (e.Item.ItemIndex + 1).ToString()+ "行吗?');");
      

  19.   

    确实挺奇怪的
    你可以在html测试一下代码
    <a   onclick="return   confirm('您真的删除吗?');"   id="Mydatalist_ctl01_zxDel"   disabled="disabled"> 删除 </a>
    <br>
    <a   onclick="return   confirm('您真的删除吗?');"   id="Mydatalist_ctl01_zxDel"   disabled="disabled" style="position:absolute"> 呵呵删除 </a>第一行 连接变灰,但可以弹出对话框
    第二行 连接便会,不弹出对话框
    不知道有没有这个方法
    myDeleteButton.Attributes.Add("style","position:absolute")