FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 8035|回复: 6
打印 上一主题 下一主题

【已解决】使用ContentPanel和LiteralControl控件,不会更新!?

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-24 15:05:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为了显示一些Html超文本内容,用代码生成内容,放在ContentPanel容器,借助LiteralControl控件来实现,首先页面初始化后生成 的内容,后来需要更新新的内容,借助Button事件来更新,但效果未能达到!代码如下:
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Exam.aspx.cs" Inherits="WebJazz.Exam" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head runat="server">
  4.     <title></title>
  5. </head>
  6. <body>
  7.     <form id="form1" runat="server">
  8.     <x:PageManager ID="PageManager1" runat="server" />
  9.     <x:ContentPanel ID="ContentPanel1" runat="server" BodyPadding="5px" ShowBorder="true"
  10.         ShowHeader="true" Title="ContentPanel">
  11.         <asp:Literal ID="lc" runat="server"></asp:Literal>
  12.     </x:ContentPanel>
  13.     <x:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click">
  14.     </x:Button>
  15.     </form>
  16. </body>
  17. </html>

复制代码
  1. using System;
  2. using System.Collections.Generic;

  3. using System.Web;
  4. using System.Web.UI;
  5. using System.Web.UI.WebControls;
  6. using System.Text;
  7. using FineUI;
  8. namespace WebJazz
  9. {
  10.     public partial class Exam : System.Web.UI.Page
  11.     {
  12.         int[] StatValue = new int[] { 100, 200 };

  13.         protected void Page_Init(object sender, EventArgs e)
  14.         {
  15.             FillStatCont(StatValue);
  16.         }

  17.         protected void FillStatCont(int[] StatValue)
  18.         {
  19.             LiteralControl lc = new LiteralControl();
  20.             lc.ID = "Stat";
  21.             StringBuilder htmlStr = new StringBuilder();
  22.             htmlStr.Append("<div class=article_col>");
  23.             htmlStr.Append("<div class=article_label style='width:40px'></div>");
  24.             htmlStr.Append("<div class=article_content>合计</div>");
  25.             htmlStr.Append("</div>");
  26.             for (int i = 0; i < StatValue.Length; i++)
  27.             {
  28.                 htmlStr.Append("<div class=article_col>");
  29.                 htmlStr.Append("<div class=article_content>" + StatValue[i] + "</div>");
  30.                 htmlStr.Append("</div>");
  31.             }
  32.             lc.Text = htmlStr.ToString();
  33.             ContentPanel1.Controls.Add(lc);

  34.         }

  35.         protected void Button1_Click(object sender, EventArgs e)
  36.         {
  37.             StatValue[0] = 400;
  38.             StatValue[1] = 600;
  39.             FillStatCont(StatValue);
  40.         }
  41.     }
  42. }
复制代码
本来想实现统计结果在Grid的下方,如下图:

现贴出可测试的代码,请大师们帮助解决!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2013-3-24 23:59:31 | 只看该作者
ContentPanel 控件中加入【EnableAjax="false"】试下...
板凳
 楼主| 发表于 2013-3-25 00:46:01 | 只看该作者
奋斗~ 发表于 2013-3-24 23:59
ContentPanel 控件中加入【EnableAjax="false"】试下...

不管用哦,谢谢你!
地板
发表于 2013-3-25 04:16:45 | 只看该作者
szjazz 发表于 2013-3-25 00:46
不管用哦,谢谢你!

不太可能啊,你放到【PageManager】试下...
5#
 楼主| 发表于 2013-3-25 04:56:08 | 只看该作者
本帖最后由 szjazz 于 2013-3-25 05:02 编辑
奋斗~ 发表于 2013-3-25 04:16
不太可能啊,你放到【PageManager】试下...

嗯,在PageManager改了EnableAjax="False",第一次显示初始值

但第一次点击按钮后可能是多了一个控件,内容多了,但再多次点击按钮却不会再新增内容和控件了

将PageManager改了EnableAjax="False"会影响到别的控件的效果吗,FineUI本身就是Ajax的高级应用啊
不行,将页面EnableAjax="False",每有一个事件,都会页面重新刷新一下,而且有些控件的显示结果变乱了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
6#
发表于 2013-3-26 17:13:29 | 只看该作者
这个问题官方网站有示例啊:http://fineui.com/demo/#/demo/aspnet/aspnet_literal.aspx

因为asp Literal渲染出来的HTML节点没有外层容器,所以要自己写个Literal的外层容器。
  1. <x:PageManager ID="PageManager1" AjaxAspnetControls="Label1,Literal1,Literal2_Container" runat="server" />
  2.     <asp:Label ID="Label1" Text="Label1" runat="server"></asp:Label>
  3.     <br />
  4.     <asp:Literal ID="Literal1" Text="Literal1" runat="server"></asp:Literal>
  5.     <br />
  6.     <div id="Literal2_Container">
  7.         <asp:Literal ID="Literal2" Text="Literal2" runat="server"></asp:Literal>
  8.     </div>
  9.     <br />
  10.     <x:Button ID="Button1" runat="server" Text="更新上面几个文本值" OnClick="Button1_Click">
  11.     </x:Button>
  12.     <br />
  13.     注意:只有Label1和Literal2的值更新了。
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-25 15:02 , Processed in 0.050112 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表