找回密码
 立即注册

QQ登录

只需一步,快速开始

sam
论坛元老   /  发表于:2013-9-15 11:37  /   查看:9779  /  回复:13
Hi  iceman:

我现在又发现个问题,当我使用程序代码给表格中的某个单元格增加图片框时候,则在第一次时,其当前行的行头和表格体的行高不一致,对不齐,会错位的。(如果我再执行一次,又会对齐了)
说明,我的环境为:VS2010 Spread for asp.net 6.0  浏览器为:firefox.

另,我的程序中使用了UpdatePanel(这个我测试过,如果没有UpdatePanel,就不会发生以上问题。)问题是,我现在系统中必须要有UpdatePanel.看请问下该如何解决这个问题。
谢谢!
详细代码如下:
html Code:
------------------------------------------------
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm14.aspx.cs" Inherits="_0000_Popup.WebForm14" %>

<%@ Register Assembly="FarPoint.Web.Spread" Namespace="FarPoint.Web.Spread" TagPrefix="FarPoint" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .Size img
        {
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <FarPoint:FpSpread ID="FpSpread1" runat="server" BorderColor="Black" BorderStyle="Solid"
                    BorderWidth="1px" Height="370px" Width="870px">
                    <CommandBar BackColor="Control" ButtonFaceColor="Control" ButtonHighlightColor="ControlLightLight"
                        ButtonShadowColor="ControlDark">
                    </CommandBar>
                    <Sheets>
                        <FarPoint:SheetView SheetName="Sheet1">
                        </FarPoint:SheetView>
                    </Sheets>
                </FarPoint:FpSpread>
                <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
    </form>
</body>
</html>

C#后台代码
-----------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using FarPoint.Web.Spread;
using System.Drawing;

namespace _0000_Popup
{
    public partial class WebForm14 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.FpSpread1.SaveViewStateToSession = false;
            this.FpSpread1.SaveOrLoadSheetState+=new SheetViewStateEventHandler(FpSpread1_SaveOrLoadSheetState);
            if (!this.IsPostBack)
            {
                this.FpSpread1.ActiveSheetView.AllowInsert = true;
                this.FpSpread1.ActiveSheetView.RowCount = 0;
                FpSpread1.Sheets[0].ColumnCount = 2;
            }
        }

        protected void FpSpread1_SaveOrLoadSheetState(object sender, SheetViewStateEventArgs e)
        {
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            FpSpread1.ActiveSheetView.AddRows(0, 1);
            ImageCellType iim = new ImageCellType();
            iim.ImageUrl = "Img/GPG4.jpg";
            iim.CssClass = "Size";
            iim.ImageAlign = ImageAlign.Middle;
            FpSpread1.ActiveSheetView.Columns[1].Width = 150;
            FpSpread1.ActiveSheetView.Cells[0, 1].CellType = iim;
            FpSpread1.ActiveSheetView.Cells[0, 1].Value = null;
            FpSpread1.ActiveSheetView.Cells[0, 1].Text = "";
            FpSpread1.SaveChanges();
        }
    }
}

其中的图片,你可以随便找张图片代替(尽量找张大点的图片,效果会明显点)。

以上,请帮忙看看,想想办法。谢谢!

13 个回复

倒序浏览
sam
论坛元老   /  发表于:2013-9-15 11:44:00
沙发
另,测试前,请关闭浏览器,让浏览器第一次启动。
回复 使用道具 举报
sam
论坛元老   /  发表于:2013-9-16 12:46:00
板凳
Hi  iceman:

请问,现在处理的怎样了?谢谢!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-9-16 13:27:00
地板
回复 2楼sam的帖子

sam 你好,
不好意思,让你久等了。
你描述的问题我重现了,正在寻找解决方法。请稍候
回复 使用道具 举报
sam
论坛元老   /  发表于:2013-9-16 14:01:00
5#
好的。谢谢!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-9-16 14:05:00
6#
回复 5楼sam的帖子

Hi sam,
这个问题可以通过设置行高来避免:

  1. protected void Button1_Click(object sender, EventArgs e)
  2.         {
  3.             FpSpread1.ActiveSheetView.AddRows(0, 1);
  4.             ImageCellType iim = new ImageCellType();
  5.             iim.ImageUrl = &quot;QQ截图20130906133214.png&quot;;
  6.             iim.CssClass = &quot;Size&quot;;
  7.             iim.ImageAlign = ImageAlign.Middle;
  8.             FpSpread1.ActiveSheetView.Columns[1].Width = 150;
  9.             FpSpread1.ActiveSheetView.Cells[0, 1].CellType = iim;
  10.             FpSpread1.ActiveSheetView.Cells[0, 1].Value = null;
  11.             FpSpread1.ActiveSheetView.Cells[0, 1].Text = &quot;&quot;;
  12.             FpSpread1.ActiveSheetView.Rows[0].Height = 80;
  13.             FpSpread1.SaveChanges();
  14.         }
复制代码

主要是  FpSpread1.ActiveSheetView.Rows[0].Height = 80; 启作用,可以根据你的实际情况来设定行高。
回复 使用道具 举报
sam
论坛元老   /  发表于:2013-9-16 14:35:00
7#
我刚试过,是可以通过 FpSpread1.ActiveSheetView.Rows[0].Height = 80 来改变行的高度,但是,还是没有和我的表体行对齐。
你可以换张图片来试试看。(只有设置:行高和图片的高度刚好一致时,才会对齐,否则是对不齐的。这样子,这个高度就不好设置了)。

另外,我测试过,在IE上是没有问题的。但是在Firefox和chrome中就会有问题(但我们系统的现在使用的主浏览器是firefox.因这个浏览器速度蛮快的)

看是否还有其他的解决办法。
谢谢!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-9-16 15:45:00
8#
回复 7楼sam的帖子

sam 你好,

目前我也没能找出好的解决方法。
这个问题我需要发给产品组调查,在得到回复后我会更新帖子通知。

谢谢
回复 使用道具 举报
sam
论坛元老   /  发表于:2013-9-16 15:50:00
9#
好的,请帮我尽快跟催下。谢谢!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-9-16 15:58:00
10#
回复 9楼sam的帖子

好的,我会及时更新问题状态.
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部