<asp:BoundColumn DataField="A" ></asp:BoundColumn>
<asp:BoundColumn DataField="B" ></asp:BoundColumn>
<asp:TemplateColumn HeaderText="修改" HeaderStyle-Width=7% ItemStyle-HorizontalAlign=Center>
<ItemTemplate>
<asp:Label runat="server" ID="Label1" Text='<%# ModURL(DataBinder.Eval(Container.DataItem,"A").ToString(),DataBinder.Eval(Container.DataItem,"B").ToString())%>'></asp:Label>
</ItemTemplate>
</asp:TemplateColumn> ModURL()是自己在.cs里写的函数,输出想要的URL字符串
<asp:BoundColumn DataField="B" ></asp:BoundColumn>
<asp:TemplateColumn HeaderText="修改" HeaderStyle-Width=7% ItemStyle-HorizontalAlign=Center>
<ItemTemplate>
<asp:Label runat="server" ID="Label1" Text='<%# ModURL(DataBinder.Eval(Container.DataItem,"A").ToString(),DataBinder.Eval(Container.DataItem,"B").ToString())%>'></asp:Label>
</ItemTemplate>
</asp:TemplateColumn> ModURL()是自己在.cs里写的函数,输出想要的URL字符串
{
string strURL = "<a href=xxx.aspx?A="+strA+"&B="+strB+">修改</a>";
return strURL;
}
{
switch( e.CommandName)
{
case "修改":
string strURL = "<a href=xxx.aspx?A="+e.Item.Cells[i].Text+"&B="+e.Item.Cells[j].Text+">修改</a>";
return strURL;
}} //i,j 分别表示A和B所在的列数
如下,UserName对应A,Email对应B
读取
string [] pks = e.CommandArgument.ToString().Split(new char[0]{'|'});=======================================================<asp:datalist id="DataListUsers" runat="server" Width="100%">
<HeaderTemplate>
<TABLE id="Table2" cellSpacing="1" cellPadding="1" width="100%" align="center" border="1">
<TR align="center">
<TD width="100">用户名称</TD>
<TD width="100">邮件地址</TD>
<TD width="100">操作选项</TD>
</TR>
</HeaderTemplate>
<ItemTemplate>
<TR>
<TD><%# ((DataRowView)Container.DataItem)["UserName"] %></TD>
<TD><%# ((DataRowView)Container.DataItem)["Email"] %></TD>
<TD><asp:LinkButton id="lnkEdit" CommandName="Edit" CommandArgument='<%# ((DataRowView)Container.DataItem)["Email"] %>|<%# ((DataRowView)Container.DataItem)["UserName"] %>' runat="server" CausesValidation="false">编辑
</asp:LinkButton> <asp:LinkButton id="lnkDelete" CommandName="Delete" runat="server" CausesValidation="false">删除
</asp:LinkButton></TD>
</TR>
</ItemTemplate>
<EditItemTemplate>
<TR>
<TD><%# ((DataRowView)Container.DataItem)["UserName"] %></TD>
<TD><%# ((DataRowView)Container.DataItem)["Email"] %></TD>
<TD><asp:LinkButton id="Linkbutton1" CommandName="Update" runat="server" CausesValidation="false">更新
</asp:LinkButton> <asp:LinkButton id="Linkbutton3" CommandName="Cancel" runat="server" CausesValidation="false">取
消</asp:LinkButton> <asp:LinkButton id="Linkbutton2" CommandName="Delete" runat="server" CausesValidation="false">
删除</asp:LinkButton></TD>
</TR>
</EditItemTemplate>
<FooterTemplate>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
</TR>
</TABLE>
</FooterTemplate>
</asp:datalist>private void DataListUsers_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
DataList dataList = (DataList)source;
int userID = (int)dataList.DataKeys[e.Item.ItemIndex];
//int userID = e.CommandArgument;
string [] pks = e.CommandArgument.ToString().Split(new char[0]{'|'});
switch(e.CommandName)
{
case "Delete":
//...
break;
case "Update":
//...
break;
case "Edit":
//...
break;
case "Cancel":
//...
dataList.EditItemIndex = -1;
break;
}
//BindUsersData();
}