找回密码
 立即注册

QQ登录

只需一步,快速开始

c1ultimate

论坛元老

19

主题

68

帖子

1万

积分

论坛元老

积分
12981

活字格认证

c1ultimate
论坛元老   /  发表于:2013-12-17 09:13  /   查看:13621  /  回复:18
本人需要用SpreadJS取代一個現用的GridView(見以下編程)。請問在report.ascx的SpreadJS可否像以下的gridview讀取report.ascx.cx的SQL數據?(在網上只找到SpreadJS要經過URL接到web service的例子)
請賜教要如何修改。

***** report.ascx *****
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="report.ascx.cs" Inherits="report" %>


Search:&amp;nbsp;
<asp:TextBox ID="txtSearch" runat="server"></asp:TextBox>&amp;nbsp;
<asp:Button ID="btnSearch" runat="server" Text="Button" OnClick="btnSearch_Click" /><br />

<br />
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>


***** report.ascx.cx ******
public partial class report : DotNetNuke.Entities.Modules.PortalModuleBase
{

    protected void Page_Load(object sender, System.EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            ShowData("");
        }
    }
    protected void btnSearch_Click(object sender, System.EventArgs e)
    {
        ShowData(txtSearch.Text);
    }
    private void ShowData(string SearchString)
    {
        string ConnectionStr = "Server=Server;Database=Db;uid=User;pwd=Password;";
        StringBuilder mySqlString = new StringBuilder();
        mySqlString.Append("SELECT * ");
        mySqlString.Append("FROM dbo.Report_Invoiced_Order_Summary ");
        mySqlString.Append("WHERE [Period] =  '" + @SearchString + "'");
        mySqlString.Append("ORDER BY [Country]");


        SqlParameter myParam = new SqlParameter("@SearchString", SqlDbType.VarChar, 150);
        myParam.Value = SearchString;
   
        this.GridView1.DataSource = ((IDataReader)(SqlHelper.ExecuteReader(ConnectionStr, CommandType.Text, mySqlString.ToString(), myParam)));
        this.GridView1.DataBind();

    }


}

18 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-12-17 12:08:00
沙发
回复 1楼c1ultimate的帖子

你好,
这个需要在 btnSearch_Click 事件中取数据,组织成 json 串,传到前端解析后绑定到 SpreadJS 上。
回复 使用道具 举报
c1ultimate
论坛元老   /  发表于:2013-12-17 13:00:00
板凳
我用了Newtonsoft.Json組成了json串, 但SpreadJS不能顯示數據(空白) 。

組成的json串是這樣(如何才能令SpeadJS接受這格式的json串):
{"Table":[{"eriod":"1310","Country":"....4766}]}

要手工刪減成這樣才能顯示數據(我不能生成這格式):
[{"eriod":"1310","Country":"....4766}]

**report.ascx 改成以下 **
sheet.setDataSource(<%=codebehideJson%>);

**report.ascx.cs 改成以下 **
SqlDataAdapter DA = new SqlDataAdapter(cmd);
DataSet DS = new DataSet("Report");
        
DA.Fill(DS);
codebehideJson = JsonConvert.SerializeObject(DS);
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-12-17 14:01:00
地板
回复 3楼c1ultimate的帖子

附件是使用 Spread JS 绑定数据的 Demo 请你参考下,如果没有解决问题请发 Demo 到论坛调试:
MVC


WebApplication:

本帖子中包含更多资源

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

x
回复 使用道具 举报
c1ultimate
论坛元老   /  发表于:2013-12-17 14:39:00
5#
以下是我用asp.net C#组织成 json串的方法,但SpeadJS不能辨認這json串的內容。

http://www.c-sharpcorner.com/Blo ... -using-C-Sharp.aspx

我是用  sheet.setDataSource(<%=test%>) 去绑定数据的。請問是否用sheet.setDataSource去讓SpreadJS讀取json串?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-12-17 18:21:00
6#
回复 5楼c1ultimate的帖子

请问是否参考了 4# 中的例子?在后台传回数据后需要通过
var dataFromServer = JSON.parse($(&quot;#HiddenField1&quot;).val());

解析 Json 串。
回复 使用道具 举报
c1ultimate
论坛元老   /  发表于:2013-12-18 10:29:00
7#
我的SpreadJS是放在ascx文件,不是用MVC razor。

最後,我把我原用的DataSet DS = new DataSet(&quot;Report&quot;);改成
DataTable DS = new DataTable; 便可以在SpreadJS顯示數據了。

我沒有另加HiddenField去傳回數據, 請問類似#4的方法是否可以像GridView1.bind()绑定数据作同時讀和寫的?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-12-18 13:44:00
8#
回复 7楼c1ultimate的帖子

SpreadJS 为前端jquery控件,无法自动同步数据库的写操作。需要手动写 sql 语句调整。
回复 使用道具 举报
c1ultimate
论坛元老   /  发表于:2013-12-19 10:54:00
9#
可否給予一個例子能把在SpreadJS的數據傳回到aspx.cs或ascx.cs? 謝謝。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2013-12-19 18:13:00
10#
如果是这样,我们建议你用Spread for ASP.NET产品来代替SpreadJS。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部