【问题标题】:When adding Runat="Server" tag to HTML table, the sharepoint not displaying the usercontrol将 Runat="Server" 标记添加到 HTML 表时,共享点不显示用户控件
【发布时间】:2013-01-26 07:30:12
【问题描述】:

我有一个 .ascx 控件。那就是有很少的 Html 表和 Div 部分 Runat = "Server"

代码如下所示,

<div id = "divpayinfo" runat = "server">

<%!-- Some Code Here --%>

 <table style="width: 403px" runat = "server">
            <tr>
                <td style="width: 63px; height: 22px;">
                    test</td>
                <td colspan="2" style="height: 22px">
                    <strong><span style="color: #ffffff">ผู้ขอกู้หลัก</span></strong></td>
            </tr>
            <tr>
                <td style="width: 63px; height: 21px">
                </td>
                <td style="width: 180px; height: 21px">
                    <strong>วงเงิน</strong></td>
                <td style="height: 21px">
                    <strong>ยอดคงค้าง</strong></td>
            </tr>
            <tr>
                <td style="width: 63px">
                    1. เงินกู้เพื่อที่อยู่อาศัย</td>
                <td style="width: 180px">
                    <asp:TextBox ID="b_txt_lh_loan_h_all" runat="server" CssClass="box_nosize_right"
                        MaxLength="8" onchange="To_Set_Value(document.getElementById('d_txt_lh_loan_h_all'),document.getElementById('b_txt_lh_loan_h_all'))"
                        onfocus="To_Get_Value(document.getElementById('d_txt_lh_loan_h_all'),document.getElementById('b_txt_lh_loan_h_all'))"
                        onmouseout="To_Set_Value(document.getElementById('d_txt_lh_loan_h_all'),document.getElementById('b_txt_lh_loan_h_all'))"
                        Text="0" Width="90px"></asp:TextBox><asp:TextBox ID="d_txt_lh_loan_h_all" runat="server"
                            Text="0"></asp:TextBox></td>
                <td>
                    <asp:TextBox ID="b_txt_lh_loan_h_remain" runat="server" CssClass="box_nosize_right"
                        MaxLength="8" onchange="To_Set_Value(document.getElementById('d_txt_lh_loan_h_remain'),document.getElementById('b_txt_lh_loan_h_remain'))"
                        onfocus="To_Get_Value(document.getElementById('d_txt_lh_loan_h_remain'),document.getElementById('b_txt_lh_loan_h_remain'))"
                        onmouseout="To_Set_Value(document.getElementById('d_txt_lh_loan_h_remain'),document.getElementById('b_txt_lh_loan_h_remain'))"
                        Text="0" Width="90px"></asp:TextBox><asp:TextBox ID="d_txt_lh_loan_h_remain" runat="server"
                            Text="0"></asp:TextBox></td>
            </tr>
            <tr>
                <td style="width: 63px; height: 102px;">
                    2. เงินกู้เบิกเกินบัญชี</td>
                <td style="width: 180px; height: 102px;">
                    <asp:TextBox ID="b_txt_lh_loan_a_all" runat="server" CssClass="box_nosize_right"
                        MaxLength="8" onchange="To_Set_Value(document.getElementById('d_txt_lh_loan_a_all'),document.getElementById('b_txt_lh_loan_a_all'))"
                        onfocus="To_Get_Value(document.getElementById('d_txt_lh_loan_a_all'),document.getElementById('b_txt_lh_loan_a_all'))"
                        onmouseout="To_Set_Value(document.getElementById('d_txt_lh_loan_a_all'),document.getElementById('b_txt_lh_loan_a_all'))"
                        Text="0" Width="90px"></asp:TextBox><asp:TextBox ID="d_txt_lh_loan_a_all" runat="server"
                            Text="0"></asp:TextBox></td>
                <td style="height: 102px">
                    <asp:TextBox ID="b_txt_lh_loan_a_remain" runat="server" CssClass="box_nosize_right"
                        MaxLength="8" onchange="To_Set_Value(document.getElementById('d_txt_lh_loan_a_remain'),document.getElementById('b_txt_lh_loan_a_remain'))"
                        onfocus="To_Get_Value(document.getElementById('d_txt_lh_loan_a_remain'),document.getElementById('b_txt_lh_loan_a_remain'))"
                        onmouseout="To_Set_Value(document.getElementById('d_txt_lh_loan_a_remain'),document.getElementById('b_txt_lh_loan_a_remain'))"
                        Text="0" Width="90px"></asp:TextBox><asp:TextBox ID="d_txt_lh_loan_a_remain" runat="server"
                            Text="0"></asp:TextBox></td>
            </tr>
        </table>

我正在服务器端对 DIV 和 HTML 表进行一些操作。所以我提到了服务器端。我将此控件作为 formusercontrolwebpart 上传到 Sharepoint。

问题是当我上传带有 runat="Server" 标记的表时,用户控件未显示在 sharepoint 页面...所以我复制此表并仅使用此表创建另一个 ascx 并将其上传到 sharepoint 但是这工作正常。

我已经检查了我所有的用户控制代码并添加了 ASP.NET 应用程序。用户控件按预期工作没有问题。但只有当我添加 Sharepoint 页面时才会出现问题..

我找到了以下解决方案,

从每个 Div 部分中删除所有 runat = "server" 标记并将 runat = "server" 添加到表中,然后共享点页面正在工作。但我的问题是我在服务器端有很多使用 Div 标签的操作。所以我不能使用这个解决方案..

请专家建议.. 是否有共享点保护 runat = "server" 标记免受用户控制或与此相关的任何内容...提前谢谢..

如果我添加以下代码行,则我的用户控件显示不会呈现,

<asp:TableCell id="d_div_l2_row9" runat="server" style="display: none; vertical-align: middle;
                    text-align: center">
                    <asp:TextBox ID="b_txt_l2_comission" runat="server" CssClass="box_nosize_right" MaxLength="8"
                        onchange="To_Set_Value(document.getElementById('d_txt_l2_comission'),document.getElementById('b_txt_l2_comission'))"
                        onfocus="To_Get_Value(document.getElementById('d_txt_l2_comission'),document.getElementById('b_txt_l2_comission'))"
                        onmouseout="To_Set_Value(document.getElementById('d_txt_l2_comission'),document.getElementById('b_txt_l2_comission'))"
                        Text="0" Width="180px"></asp:TextBox><span style="display: none"><asp:TextBox ID="d_txt_l2_comission"
                            runat="server" Text="0"></asp:TextBox></span></asp:TableCell>

【问题讨论】:

  • 我不确定我是否正确理解了您的问题,任何带有runat="server" 的标签都会导致用户控件消失?
  • 亲爱的 Banana,runat = "server" 标签工作正常,直到某一行。但是,当我在特定行之后插入 runat sever 时,用户控件不显示..我已经检查了代码,我的用户控件在我的 asp.net web 应用程序中工作正常..但它在共享点页面中不起作用
  • 你有没有尝试调试,看看有没有异常?
  • 我已经为这个问题找到了一些解决方法.. 仍然无法找到确切的问题

标签: sharepoint sharepoint-2010 sharepoint-2007 sharepoint-designer


【解决方案1】:

我认为 asp:panel 被转换为底层 HTML 中的 div。你可以试试;

<asp:panel id="divpayinfo" runat="server">

  <!-- Your code here -->

</asp:panel>

【讨论】:

  • 感谢亲爱的 Moose,现在我正在将所有 Div 部分转换为 Panel 并将所有 HTML 表转换为 ASP:Table.. 但我的问题是有很多 Div 和 Table :) 可能在附近8 个表和 25 个 Div 部分..这就是我试图找出核心问题的原因..如果您有任何建议,请分享 sharepoint 中是否有任何安全相关的东西阻止我的 Div 和 Table 不能一起工作:(
  • 我已将我所有的 DIV 和表格转换为 ASP.NET 面板和 asp:Table 但我仍然面临同样的问题。如果我删除 runat = "server",我会在某个时间点从单行中找到标记然后我可以查看用户控件...我不确定此错误的原因是什么:(
  • 对不起。我没有很多其他的想法。您可以查看源代码,然后查看 div 和表格是否存在?也许有一些 Javascript 正在调整可见属性或类似的东西?
  • Moose 先生,我把所有的 js 都注释掉了。。尽管还是同样的问题。。非常感谢你的 cmets
【解决方案2】:
<asp:TableCell id="d_div_l2_row9" runat="server" style="**display: none;** vertical-align: middle;
                    text-align: center">
                    <asp:TextBox ID="b_txt_l2_comission" runat="server" CssClass="box_nosize_right" MaxLength="8"
                        onchange="To_Set_Value(document.getElementById('d_txt_l2_comission'),document.getElementById('b_txt_l2_comission'))"
                        onfocus="To_Get_Value(document.getElementById('d_txt_l2_comission'),document.getElementById('b_txt_l2_comission'))"
                        onmouseout="To_Set_Value(document.getElementById('d_txt_l2_comission'),document.getElementById('b_txt_l2_comission'))"
                        Text="0" Width="180px"></asp:TextBox><span style="display: none"><asp:TextBox ID="d_txt_l2_comission"
                            runat="server" Text="0"></asp:TextBox></span></asp:TableCell>

文本显示:样式中没有这个是您生成或添加的。因为这意味着不应显示控件。

【讨论】:

  • 亲爱的 Andrew,是的,这对 UI 来说是不可见的,我不会对这个文本框进行任何操作....如果我添加另一个带有 runat = server 标签的控件而不是这个文本框,例如 Testcall
    .. 然后也不显示.. 我也评论了 javascript 和我的业务和数据库层.. 不走运.. 仍然对共享点感到困惑.. 我添加我的 asp.net 应用程序中的用户控件工作正常,但共享点页面只会给我带来问题
【解决方案3】:

驼鹿、安德鲁和香蕉,

非常感谢您为帮助我所做的努力。

我找到了另一种方法来解决问题,但找出原因仍然让我很头疼。

我在共享点服务器“控件模板”文件夹中上传了相同的用户控件,并为该用户控件创建了一个 .aspx 页面并将该 aspx 上传到共享点中。现在它可以像使用 asp.net 应用程序一样正常工作了。

【讨论】:

  • 请将此问题标记为已接受,以便将此问题标记为已解决,并且不会在列表中显示为打开。
猜你喜欢
  • 2012-05-16
  • 1970-01-01
  • 2010-10-08
  • 2016-05-04
  • 1970-01-01
  • 2017-02-05
  • 1970-01-01
  • 1970-01-01
  • 2012-09-18
相关资源
最近更新 更多