如何将gridview绑定到数组
本文关键字:数组 绑定 gridview | 更新日期: 2023-09-27 17:59:26
我想将2d数组绑定到gridview。怎么能这么做。我也附上了我的代码。如果有任何其他方法,也建议我。
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();
据我所知,您的输入字符串如下:
var inputString = "key1=value1&key2=value2&key3=value3";
下面的代码将解析字符串并生成一个列表,然后将其绑定到一个网格。
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();
所以你的最终代码应该是这样的:
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();
我会尝试这样的方法,而不是2d数组。
var data = aQS.Select(s => new {Col1 = s.Split('=')[0], Col2 = s.Split('=')[1]});
GridView1.DataSource = data;
GridView1.DataBind();
我不喜欢给Split()
打两次电话,但我不知道如何解决这个问题。
或者你可以让事情真正向前发展,并创建一个简单的类
class RowData{
public string Col1Value {get; set;}
public string Col2Value {get; set;}
}
你可以做
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();