我环顾四周,并没有找到解决我问题的方法。我有一个 PopupControlExtender 不断给出“Web 服务调用失败:500”错误,而不是显示弹出窗口。我有一个带有 OnItemCreate 属性的数据网格,该属性可以正常工作以将 mouseouver 和 mouseout 属性分配给列中的图像。下面是包含 targetControl 图像和 AJAX 控件本身的列的代码。
这是ajax控件的代码:
<asp:TemplateColumn
HeaderText="Notes"
SortExpression="note"
ItemStyle-VerticalAlign="Top"
HeaderStyle-HorizontalAlign="Center"
HeaderStyle-CssClass="colNotes"
ItemStyle-HorizontalAlign="Center"
ItemStyle-CssClass="colNotes">
<ItemTemplate>
<asp:Label ID="lblNotes" Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "note") %>'></asp:Label>
<%--<asp:HyperLink ID="lnkNotes" Visible='<%# DataBinder.Eval(Container.DataItem, "has_note") %>' Runat="server" Text="..." /> --%>
<asp:Image ID="lnkNotes" runat="server" Visible='<%# DataBinder.Eval(Container.DataItem, "has_note") %>' ImageUrl="http://www.ezzylearning.com/tutorials/demos/images/magnify.gif" />
<ajax:PopupControlExtender ID="PopupControlExtender1" runat="server"
PopupControlID="pnlPopupNotes"
TargetControlID="lnkNotes"
DynamicContextKey='<%# Eval("person_id") +","+Eval("group_id") %>'
DynamicControlID="pnlPopupNotes"
DynamicServiceMethod="GetDynamicContent" Position="Bottom">
</ajax:PopupControlExtender>
</ItemTemplate>
</asp:TemplateColumn>
这是 DynamicServiceMethod 的代码(我故意将其剥离为一个简单的跨度以尝试显示某些内容)...
[System.Web.Services.WebMethodAttribute(),
System.Web.Script.Services.ScriptMethodAttribute()]
public static string GetDynamicContent(string contextKey)
{
StringBuilder b = new StringBuilder();
b.Append("<span>Hello!</span>");
return b.ToString();
}
这是我用作 PopupControlID 的面板...
<asp:Panel ID="pnlPopupNotes" runat="server">
因此,通过此设置,我成功获得了 mouseover/mousout 行为,但是在我希望看到 span 弹出窗口的地方,我看到了“Web Service call failed: 500”消息。关于我可能遗漏的任何想法?
编辑:
我发现问题在于如何从页面调用 Web 服务。Web 服务实际上是在同一页面上的用户控件中构建的。当我将鼠标悬停并进行 Web 服务调用时,我看到它为尝试访问 Web 服务器而创建的 URL 应该是http://mydomain/default.aspx/GetDynamicContent
它应该更像的位置http://mydomain/default.aspx/Usercontrols/parentUserControl.ascx/GetDynamicContent
但是,我不知道如何修改它正在调用的 URL。我尝试将 DynamicServiceMethod 属性值从 "GetDynamicContent" 更改为http://mydomain/default.aspx/UserControls/parentUserControl.ascx/GetDynamicContent
,但这只会造成混乱。
我希望此编辑可以为可以帮助我的人提供更多见解。