Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# AjaxControlToolkit鼠标悬停菜单问题_C#_Asp.net_Asp.net Ajax_Ajaxcontroltoolkit - Fatal编程技术网

C# AjaxControlToolkit鼠标悬停菜单问题

C# AjaxControlToolkit鼠标悬停菜单问题,c#,asp.net,asp.net-ajax,ajaxcontroltoolkit,C#,Asp.net,Asp.net Ajax,Ajaxcontroltoolkit,我有一个asp:GridView,里面有一些模板文件,其中一个用于向用户显示鼠标悬停菜单面板 更详细地说,gridview显示个人信息,当用户将鼠标移到行上时,会出现一个面板,显示完整信息 这是TemplateField <asp:TemplateField meta:resourcekey="grdListTemplateFieldID"> <ItemTemplate> <as

我有一个asp:GridView,里面有一些模板文件,其中一个用于向用户显示鼠标悬停菜单面板

更详细地说,gridview显示个人信息,当用户将鼠标移到行上时,会出现一个面板,显示完整信息

这是TemplateField

<asp:TemplateField meta:resourcekey="grdListTemplateFieldID">
                    <ItemTemplate>
                        <asp:HoverMenuExtender ID="HoverMenuExtender" runat="server"
                            PopupControlID="PopupMenu" PopupPosition="Center" OffsetY="30" OffsetX="10" PopDelay="50"
                            HoverCssClass="hoverMenu" >        
                        </asp:HoverMenuExtender>
                        <asp:Panel ID="PopupMenu" CssClass="popupMenu" runat="server">
                            <div id="RequestHoverTitle">
                                <asp:Label ID="lblTitle" runat="server" meta:resourcekey="lblTitle" />
                            </div>
                            <div id="NameContainer">
                                <asp:Label ID="lblFullName" runat="server" SkinID="BoldLabel" meta:resourcekey="lblFullName" />
                                <asp:Label ID="lblReqName" runat="server" SkinID="ListLabel" Text='<%# Eval("Name") %>' />
                                <asp:Label ID="lblReqLastName" runat="server" SkinID="ListLabel" Text='<%# Eval("Family") %>' />
                            </div>
最后一切对我来说都很好

我对这个代码有两个问题

第一:如果用户使用提供的注销链接(在母版页中)注销页面,将看到

The TargetControlID of 'HoverMenuExtender' is not valid. The value cannot be null or empty.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Source Error: 
每当我想发回页面时,就会出现此消息(如果发生提交过程,或文件上传,反之亦然)


任何获得的帮助

请尝试用以下内容包装此代码:

if (e.Row.RowType == DataControlRowType.DataRow)
{
  //assign target id
}

尝试用以下内容包装此代码:

if (e.Row.RowType == DataControlRowType.DataRow)
{
  //assign target id
}

因为我在中的代码隐藏中分配了HoverMenuExtender的TargetControlID,所以我没有在ASP标记中分配TargetControlID

因此,我将标记中HoverMenuExtender的targetControlID设置为GridView ID,问题得到解决


对于升级用户,我应该说您可以将HoverMenuExtender的targetControlID设置为您喜欢的任何ID,然后使您在codebehind中设置它,它将使用有效ID替换无效ID。

因为我在中的codebehind中为HoverMenuExtender分配了targetControlID,所以我没有在ASP标记中分配targetControlID

因此,我将标记中HoverMenuExtender的targetControlID设置为GridView ID,问题得到解决


对于升级用户,我应该说,您可以将HoverMenuExtender的targetControlID设置为您喜欢的任何ID,然后在codebehind中设置它,它将使用有效ID替换您的无效ID。

forum.asp.net可能是解决此类问题的更好地方。因为我以前对AjaxControlToolkit有一些问题,但费用不高StackOverflow.comforum.asp.net中的dback可能是回答此类问题的更好地方。因为我以前对AjaxControlToolkit有一些问题,但在StackOverflow.comh中没有得到很好的反馈,所以我将代码放在grdList.Iput allof mycode的RoDataBound事件中,并且在if(hoverMenu==null)中使用它条件但不起作用。我哪里搞错了?或者请告诉我另一个解决方案OK,这可能需要一些调试;我要尝试的是暂时禁用该代码/扩展器。然后运行这两种方案(登录/注销),并查看GridVIew的标记,看看ID是否真的为空。此外,如果用户注销,哪些数据会绑定到该网格?是否绑定空数据源?该网格在没有记录时是否显示任何数据?亲爱的Brian,loggedout用户无权查看列表内容,以及GridVIew为空时(我的意思是数据源为空)gridview没有显示任何内容,因此没有显示任何内容,但是当用户登录或尝试回发(提交)时页面已断开,如果gridview为null,并且数据源为null,那么如果没有呈现任何行,为什么还会存在hovermenuextender?可能是其他hovermenuextender导致了此问题?或者是viewstate正在重新加载,而重新加载的扩展器没有分配值?可能需要在RowCre中分配该值ated事件?此外,可能您需要提供一个默认的targetcontrolID,并将其切换到RowCreated或RowDataBOund中服务器行的ID?这里有几个选项…Brian我将代码放在grdList.Iput allof mycode的RoDataBound事件中,并且在if(hoverMenu==null)中使用它条件但不起作用。我哪里搞错了?或者请告诉我另一个解决方案OK,这可能需要一些调试;我要尝试的是暂时禁用该代码/扩展器。然后运行这两种方案(登录/注销),并查看GridVIew的标记,看看ID是否真的为空。此外,如果用户注销,哪些数据会绑定到该网格?是否绑定空数据源?该网格在没有记录时是否显示任何数据?亲爱的Brian,loggedout用户无权查看列表内容,以及GridVIew为空时(我的意思是数据源为空)gridview没有显示任何内容,因此没有显示任何内容,但是当用户登录或尝试回发(提交)时页面已断开,如果gridview为null,并且数据源为null,那么如果没有呈现任何行,为什么还会存在hovermenuextender?可能是其他hovermenuextender导致了此问题?或者是viewstate正在重新加载,而重新加载的扩展器没有分配值?可能需要在RowCre中分配该值ated事件?此外,可能需要提供默认的targetcontrolID,并将其切换到RowCreated或RowDataBOund中服务器行的ID?这里有几个选项。。。