首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将gridview绑定到数组

如何将gridview绑定到数组
EN

Stack Overflow用户
提问于 2011-06-17 09:20:24
回答 2查看 2K关注 0票数 1

我想把二维数组绑定到网格视图。怎么能做到这一点。我也附上了我的代码。如果有任何其他方法,那么也建议我。

代码语言:javascript
复制
        string sQS;
        string[] aQS;
        string pwd = "ebskey";
        string DR = Request.QueryString["DR"].ToString();
        DR = DR.Replace(' ', '+');
        sQS = Base64Decode(DR);
        DR = EBSHelper.Decrypt(pwd, sQS, false);
        aQS = DR.Split('&');
        int p1 = aQS.Length;
        string[,] pp = new string[p1,2];
        for (int i = 0; i < aQS.Length; i++)
        {
            string[] aParam = aQS[i].Split('=');
            pp[i,0] = aParam[0].ToString();
            pp[i,1] = aParam[1].ToString();

        }
        GridView1.DataSource = pp;
        GridView1.DataBind();
EN

回答 2

Stack Overflow用户

发布于 2011-06-17 09:31:09

据我所知,您的输入字符串如下:

代码语言:javascript
复制
var inputString = "key1=value1&key2=value2&key3=value3";

下面的代码将解析字符串并创建一个列表,然后将其绑定到一个网格。

代码语言:javascript
复制
var list = Regex.Matches(inputString, @"(?<key>\w+)=(?<value>\w+)(&|$)")
    .Cast<Match>()
    .Select(arg => new { Key = arg.Groups["key"].Value, Value = arg.Groups["value"].Value })
    .ToList();
GridView1.DataSource = list;
GridView1.DataBind();

因此,您的最终代码将如下所示:

代码语言:javascript
复制
string pwd = "ebskey";
string DR = Request.QueryString["DR"];
DR = DR.Replace(' ', '+');
string sQS = Base64Decode(DR);
DR = EBSHelper.Decrypt(pwd, sQS, false);

var list = Regex.Matches(DR, @"(?<key>\w+)=(?<value>\w+)(&|$)")
    .Cast<Match>()
    .Select(arg => new { Key = arg.Groups["key"].Value, Value = arg.Groups["value"].Value })
    .ToList();
GridView1.DataSource = list;
GridView1.DataBind();
票数 2
EN

Stack Overflow用户

发布于 2011-06-17 09:33:05

我会尝试这样的东西,而不是二维数组。

代码语言:javascript
复制
var data = aQS.Select(s => new {Col1 = s.Split('=')[0], Col2 = s.Split('=')[1]});
GridView1.DataSource = data;
GridView1.DataBind();

我不喜欢调用Split()两次,但我不确定如何解决这个问题。

或者,您可以让事情变得非常简单,并创建一个简单的类

代码语言:javascript
复制
class RowData{
    public string Col1Value {get; set;}
    public string Col2Value {get; set;}
}

你可以这样做

代码语言:javascript
复制
List<RowData> rows = new List<RowData>();
for (int i = 0; i < aQS.Length; i++)
 {
        string[] aParam = aQS[i].Split('=');
        RowData row = new RowData {Col1Data = aParam[0], Col2Data = aParam[1]};
        rows.Add(row);
 }

 GridView1.DataSource = rows;
 GridView1.DataBind();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6380449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档