Apache Cassandra gridView问题

时间:2013-05-17 11:08:53

标签: c# asp.net cassandra

我无法在Apache-Cassandra的gridview上显示rowkey值。 一些代码...

public class PacienteEntity
{
    public int key { get; set; }
    public string name { get; set; }
}

var records = (from x in context.ColumnList
where x.ColumnFamily == "paciente"
select x.ToObject<PacienteEntity>());

//remove null rows
var filteredRecords = records.ToList().Where(i => i != null);
dgView.DataSource = filteredRecords.ToList();
dgView.DataBind();
即使使用autoGenerateColumns,

rowkey值也等于0 欢迎任何帮助!

2 个答案:

答案 0 :(得分:0)

我基本上通过RowIndex通过CommandArgument并使用它来检索DataKey值 在按钮上:

  

CommandArgument ='&lt;%#DataBinder.Eval(Container,“RowIndex”)%&gt;'

在服务器事件

  

int rowIndex = int.Parse(e.CommandArgument.ToString());

     

string val =(string)this.dgView.DataKeys [rowIndex] [“myKey”];

答案 1 :(得分:0)

您需要在Gridview中设置数据密钥名称,如下所示

  <asp:gridview id="MyGridView" 
        datakeynames="Key"
        onselectedindexchanged="MyGridView_SelectedIndexChanged"
        runat="server">

然后在您的活动中,您可以获得如下的密钥

  void MyGridView_SelectedIndexChanged(Object sender, EventArgs e)
  {
    int index = MyGridView.SelectedIndex;
    var key =MyGridView.DataKeys[index].Value.ToString();
  }

如果您已有多个密钥,例如DataKeyNames="Key,Name"

您现在可以通过提供如下索引来访问每个DataKeys:

string Key= MyGridView.DataKeys[index].Values[0].ToString();
string Name= MyGridView.DataKeys[index].Values[1].ToString();

不确定您的DataSource绑定,请执行以下操作,您需要映射正确的属性以在下面的代码中设置密钥和名称

var records = context.ColumnList.Where(x=> x.ColumnFamily == "paciente")
              .Select(p=> new PacienteEntity(){ Key = p.P_Key, Name =p.P_Name}).ToList();