日期:2014-05-20  浏览次数:20462 次

请明白人给讲讲这条语句的含意,谢谢!
页面前台有以下代码:
<asp:GridView   ID= "View1 "   Width= "100% "   runat= "server "   AutoGenerateColumns= "False "   CellPadding= "3 "   OnRowDataBound= "VoteView_RowDataBound "   CssClass= "GbText "   DataKeyNames= "SubjectID,Mode "   CellSpacing= "1 ">

后台有以下代码:
protected   void   View1_RowDataBound(object   sender,GridViewRowEventArgs   e)
{
        if(View1.DataKeys[e.Row.RowIndex].Values[ "Mode "].ToString().ToLower()   ==   "false ")
        {
                ......
        }
}

数据表中的确有 'SubjectID '和 'Mode '字段。我的问题是:
1.   前台代码中GridView的DataKeyNames这里只能填入主键字段名吗?可是实际上数据表中只有 'SubjectID '字段为主键呐。如此说来只有主键才能填入DataKeyNames属性中,是这样吗?
2.   后台代码中的e.Row.RowIndex指的是什么?那View1.DataKeys[e.Row.RowIndex].Values[ "Mode "]又是什么意思呢?
谢谢指教!



------解决方案--------------------
1.datakeynames是gridview的主键
2.e.row.rowindex是当前行的索引
------解决方案--------------------
比如你点第一行,那e.row.rowindex=0
View1.DataKeys[e.Row.RowIndex].Values[ "Mode "]就是此行“mode”字段的值