在DBGrid1中,用到了模板,我想请问一下,
在模板例中传递参数 ,传 递的是DBRid1中的datakeynames与 模板列绑定的列有
 <%#DataBinder.Eval(Container.DataItem,"序号") 有什么关系,他们可以不相同吗,
还有就是他们传递的参数是哪一下,怎么样控制他们传递的参数?
说明:
我有多个模板列,传递不同的参数。

解决方案 »

  1.   

    DataKeyNames是存储主键的地方,一般主见是不需要显示的,而你绑定的列是从数据库中取出来的需要显示的字段,所以说, 他们都是从数据库选出来的字段,DataKeyNames只是选出来的字段的一个子集。
    应该是这样吧。
      

  2.   

    我的datakeynames的字段是序号,
    我有四个模板例,
    我想在前两个模板列中,取datakeynames字段的“序号”值 ,
    我想在后两个模板列中,取Container.DataItem,"id",中id的值,
    请问如何进行代码处理。我想问如何取出CS代码示例:
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int [color=#FF0000]index 
    = Convert.ToInt32(e.CommandArgument);
            if (e.CommandName == "ck")
            {
                Response.Redirect("../RS/Visjbxx.aspx?id=" + index);
            }
            if (e.CommandName == "xlxw")
            {
                Response.Redirect("../RS/xlxwx.aspx?id=" + index);
            }
        }
    Html代码示例:
                      <asp:TemplateField HeaderText="查看">
                          <ItemTemplate>
                              <asp:LinkButton ID="LinkButton3" runat="server" CommandArgument=' <%#DataBinder.Eval(Container.DataItem,"序号") %>'
                                  CommandName="ck">查看</asp:LinkButton>
                          </ItemTemplate>
                      </asp:TemplateField>
                      <asp:TemplateField HeaderText="添加">
                          <ItemTemplate>
                              <asp:LinkButton ID="LinkButton4" runat="server" CommandArgument=' <%#DataBinder.Eval(Container.DataItem,"序号") %>'
                                  CommandName="xlxw">添加</asp:LinkButton>
                          </ItemTemplate>
                      </asp:TemplateField>
                      <asp:TemplateField HeaderText="修改">
                          <ItemTemplate>
                              <asp:LinkButton ID="LinkButton5" runat="server" CommandArgument=' <%#DataBinder.Eval(Container.DataItem,"id") %>'
                                  CommandName="edit">修改</asp:LinkButton>
                          </ItemTemplate>
                      </asp:TemplateField>
                      <asp:TemplateField HeaderText="删除">
                          <ItemTemplate>
                              <asp:LinkButton ID="LinkButton7" runat="server" CommandArgument=' <%#DataBinder.Eval(Container.DataItem,"id") %>'
                                  CommandName="delete">删除</asp:LinkButton>
                          </ItemTemplate>
                      </asp:TemplateField>
      

  3.   

    有什么问题吗?index = Convert.ToInt32(e.CommandArgument); 
    取的就是 序号和id的值  
      

  4.   

    就是我不想取DataKeyNames是存储主键,我想取绑定的Container.DataItem,"id",中id的值