日期:2014-05-18  浏览次数:20397 次

Gridview中用LinkButton传值的问题
aspx:
<asp:TemplateField   ShowHeader= "False ">
            <ItemTemplate>
                                                <asp:LinkButton   ID= "LinkButton2 "   runat= "server "   CausesValidation= "false "   CommandName= " "
                                                        OnClick= "LinkButton2_Click "   Text= "删除 "   CommandArgument= ' <%#Eval( "ID ")%> '> </asp:LinkButton>
            </ItemTemplate>
</asp:TemplateField>


cs:
        protected   void   LinkButton1_Click(object   sender,   EventArgs   e)
        {
                string   temple   =   ((LinkButton)sender).CommandArgument.ToString();
                Label1.Text   =   temple;  


        }

问题:commandargument的值可以读出来,但是现在的问题是,数据库里面的主键时ID和Type的组合,但是我试了半天commandargument只能传一个值过来,有什么办法能通过linkbutton把ID和Type都传过来,最好是把一条row上所有字段都传过来

谢谢

------解决方案--------------------
可以加一个分隔符一起赋值给CommandArgument,获取之后在Split一下
==============================================================
这个最实际,分隔符随便,逗号就行

#Eval()如果不知道,你需要看看帮助了..


------解决方案--------------------
asp.net数据绑定部分,的确存在需要在一个地方同时绑定多个值时不好处理的情况。
也许上面说的用分隔符的办法可行。
还有就是主键不显示在gridtable里的情况,我一般的做法是把所有的主键都让做一个绑定列,但是让他们不显示。
------解决方案--------------------
不知道你要实现什么效果。。为何不用HyperLink?

<asp:HyperLink runat=server ID= "HyperLink1 "
NavigateUrl= "abc.aspx?Id= ' <%#DataBinder.Eval(Container, "DataItem.ID ")%> '&type= ' <%#DataBinder.Eval(Container, "DataItem.type ")%> ' " Text= ' ' >
</asp:HyperLink>