Repeaterd的使用,获取选中行的id,ItemDataBound和ItemCommand事件的使用
<table class="datagrid1" id="sample_1">
<tr>
<th style="width: 20%">选择</th>
<th style="width: 20%; text-align: left">姓名</th>
<th style="width: 20%">所在部门</th>
<th style="width: 20%">职位</th>
<th style="width: 20%">联系电话</th>
</tr>
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound" OnItemCommand="Repeater1_ItemCommand">
<ItemTemplate>
<tr>
<td>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="select" ForeColor="Green" CommandArgument='<%# Eval("id")%>'>选择</asp:LinkButton>
</td>
<td style="text-align: left">
<asp:Label ID="Label1" runat="server" Text='<%#Eval("name") %>' class="text_slice"></asp:Label>
</td>
<td style="text-align: center">
<asp:Label ID="Label2" runat="server" Text='<%#Eval("deptid") %>'></asp:Label>
</td>
<td style="text-align: center">
<asp:Label ID="Label3" runat="server" Text='<%#Eval("Positionsid") %>'></asp:Label>
</td>
<td style="text-align: center">
<asp:Label ID="Label4" runat="server" Text='<%#Eval("phone") %>'></asp:Label><input type="hidden" id="hidden1" runat="server" value='<%#Eval("id") %>' class="text_slice" />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
<tr style="text-align: left">
<td>选择的人员:<asp:Label ID="lblshow" runat="server" Style="color: #f00; padding: 3px"></asp:Label>
<asp:Label ID="lblshow2" runat="server" Style="color: #f00; padding: 3px; display: none" Visible="false"></asp:Label>
</td>
</tr>
</table>
后台:
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)//事件被数据绑定后激发
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Label Label2 = (Label)e.Item.FindControl("Label2");//部门
Label2.Text = UtilityFunctions.getBranchname(Label2.Text);Label Label3 = (Label)e.Item.FindControl("Label3");//职位
Label3.Text = UtilityFunctions.getPositionsname(Label3.Text);}
}protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)//生成事件时激发
{
if (e.CommandName == "select")//if事件select激发
{
Label lblshow = e.Item.FindControl("lblshow") as Label;
Label Label1 = e.Item.FindControl("Label1") as Label;string id = Convert.ToString(e.CommandArgument.ToString());//获取所选中行的id
this.ViewState["WTZid"] = id;
this.ViewState["wtzName"] = Label1.Text;
}
BindData();
}