博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

repeater控件 commandname、commandargument如何使用

Posted on 2011-02-23 11:21  itcfj  阅读(861)  评论(0编辑  收藏  举报
GridView控件CommandArgument 绑定多个参数

前台绑定:

   CommandArgument='<%# Eval("ReviewId")+","+Eval("isconfirm") %>'

后台获取:
        string temp = e.CommandArgument.ToString();

       string[] estr = e.CommandArgument.ToString().Split(',');

       int reviewid = Convert.ToInt32(estr[0]);
       string isconfirm = Convert.ToString(estr[1]);



前台页面你可以类似这样写:
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
        <HeaderTemplate ><table><tr><td>编号</td><td>标题</td><td>发布时间</td><td>发布对象</td><td></td><td></td></tr><tr><td colspan="6"><hr /></td></tr></HeaderTemplate>
        <ItemTemplate ><tr><td>
            <asp:Label ID="id" runat="server" Text='<%#Eval ("ID") %>'></asp:Label></td><td><%#Eval("Title")%></td><td><%#Eval ("timer") %></td><td><%#Eval ("pto") %></td><td>
                <asp:LinkButton ID="edit" CommandName ="edit"  CommandArgument='<%#Eval ("ID") %>' runat="server">编辑</asp:LinkButton></td><td>
                    <asp:LinkButton ID="del"   CommandName ="del"  CommandArgument='<%#Eval ("ID") %>' runat="server">删除</asp:LinkButton></td></tr></ItemTemplate>
        <SeparatorTemplate ><tr><td colspan="4"><hr /></td></tr></SeparatorTemplate>
        <FooterTemplate ></table></FooterTemplate>
        </asp:Repeater>
后台直接调用:
如  int id = Convert.ToInt32(e.CommandArgument);
即利用linkbuttion的commandname或者commandargument属性动态某些字段,比如我们想要而又不想让用户看到的id,当前你也可以给它们赋值,作为服务器控件的区分,比如你使用多个linkbuttion,就可任意取它们的commandname来辨别是哪个命令源激发的事件
前台代码:


    <table class="li1" cellspacing="1" cellpadding="2" border="0" style="width: 100%;" id="sort" oncontextmenu="return false; " onpaste=" return false;">
        <thead>
            <tr>
                <td style="width: 3%; padding-left: 0px;" align="left"><input id="selectall" onclick="SelectAll(selectall)" type="checkbox" name="selectall" /></td>
                <td align="left" style="width: 15%;"><asp:LinkButton ID="LinkButton1" runat="server" CommandName="custname" OnClick="field_sort_Click">dd</asp:LinkButton></td>
                <td style="width: 10%;"><asp:LinkButton ID="LinkButton2" runat="server" CommandName="cuslib" OnClick="field_sort_Click">dd</asp:LinkButton></td>
                <td style="width: 10%;"><asp:LinkButton ID="LinkButton3" runat="server" CommandName="intime" OnClick="field_sort_Click">dd</asp:LinkButton></td>
                <td style="width: 9%;"><asp:LinkButton ID="LinkButton4" runat="server" CommandName="opename" OnClick="field_sort_Click">d</asp:LinkButton></td>
                <td style="width: 9%;"><asp:LinkButton ID="LinkButton5" runat="server" CommandName="userid" OnClick="field_sort_Click">dd</asp:LinkButton></td>
                <td style="width: 9%;"><asp:LinkButton ID="LinkButton6" runat="server" CommandName="tel1" OnClick="field_sort_Click">dd</asp:LinkButton></td>
                <td style="width: 8%;">重要日期</td>
                <td style="width: 7%;">联系人</td>
                <td style="width: 20%;" align="center">操作</td>
            </tr>
        </thead>
        <tbody>
            <asp:Repeater ID="rpt_customerinfo" runat="server" OnItemCommand="rpt_customerinfo_ItemCommand"
                OnItemDataBound="rpt_customerinfo_ItemDataBound">
                <ItemTemplate>
                    <tr onmouseover=" this.className='on' " onmouseout="this.className='off'" style="cursor: hand">
                        <td style="padding-left: 0px;" align="left"><input onclick="SelectOne(this)" type="checkbox" name="sel_one" value='<%#DataBinder.Eval(Container.DataItem,"cusid")%>'></td>
                        <td align="left" title='<%#Eval("custname")%>'><a href="CustomerDetail.aspx?type=see1&cusid=<%#DataBinder.Eval(Container.DataItem, "cusid")%>"> <%#Eval("custname").ToString().Length > 8 ? Eval("custname").ToString().Substring(0, 8)+"..." : Eval("custname").ToString()%></a></td>
                        <td><%#Eval("的")%></td>
                        <td><%#Eval("的").ToString().Length > 10 ? Eval("intime").ToString().Substring(0, 10) : Eval("intime")%></td>
                        <td><%#Eval("啊")%></td>
                        <td><%#Eval("userndame")%></td>
                        <td><%#Eval("的")%></td>
                        <td><a href="../ImportantD33ate/方的.aspx?cusid=<%#Eval("cusid")%>">查看</a></td>
                        <td><a href="../Linkman/辅导费.aspx?type=linkman&&cusid=<%#Eval("cusid")%>">查看</a></td>
                        <td>
                            <asp:LinkButton ID="btn_look" CommandName="look" runat="server" CommandArgument='<%#Eval("cusid") %>'><font color="blue">查看</font></asp:LinkButton>|
                            <asp:LinkButton ID="btn_edit" CommandName="edit" runat="server" CommandArgument='<%#Eval("cusid") %>'><font color="blue">编辑</font></asp:LinkButton>|
                            <asp:LinkButton ID="btn_del" CommandName="del" runat="server" CommandArgument='<%#Eval("cusid") %>' OnClientClick="return confirm('确定要删除此客户吗?')"><font color="blue">删除</font></asp:LinkButton>|
                            <asp:LinkButton ID="btn_trans" CommandName="trans" runat="server" CommandArgument='<%#Eval("cusid") %>'><font color="blue">转为伙伴</font></asp:LinkButton>
                            <asp:HiddenField ID="hduserid" runat="server" Value='<%#Eval("userid")%>' />
                        </td>
                    </tr>
                </ItemTemplate>
            </asp:Repeater>

后台代码:

    protected void rpt_customerinfo_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "edit")
        {
            Response.Redirect("customerEdit.aspx?type=edit&cusid=" + e.CommandArgument.ToString());
        }
        if (e.CommandName == "trans")
        {
            try
            {
                erp_crm.Model.crm_customerinfo custinfo = new erp_crm.Mo1del.crm_customerinfo();
                int cusID = Convert.ToInt32(e.CommandArgument.ToString());
                custinfo = cusinfo.GetModel(cusID);
                custinfo.cuslib = "2";
                cusinfo.Updatecust(custinfo);
                BindDataPage();
            }
            catch (Exception ex)
            {
            }
        }
        if (e.CommandName == "look")
        {
            string where = " cusid in (" + Convert.ToInt32(e.CommandArgument.ToString()) + ")";
            DataSet ds = cusinfo.GetList(where);
            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                string cuslib = ds.Tables[0].Rows[0]["cuslib"] + "";
                if (cuslib == "3")
                {
                    Response.Redirect("../KeyCust/KeyCustDetail.aspx?cusid=" + e.CommandArgument.ToString());
                }
                else
                {
                    Response.Redirect("CustomerDetail.aspx?type=see1&cusid=" + e.CommandArgument.ToString());
                }
            }
        }
        if (e.CommandName == "del")
        {
            //删除
            int Flag = 0;
            try
            {
                DataSet ds = linkinfo.GetList(" custid = " + e.CommandArgument.ToString());
                if (ds.Tables[0].Rows.Count > 0)
                {
                    ClientScript.RegisterStartupScript(GetType(), "ok", "setTimeout(\"alert('此客户有联系人,不能直接删除!')\",3);", true);
                }
                else
                {
                    Flag = cusinfo.Del(Convert.ToInt32(e.CommandArgument.ToString()));
                    if (Flag > 0)
                    {
                        ClientScript.RegisterStartupScript(GetType(), "ok", "setTimeout(\"alert('删除成功!')\",3);", true);
                    }
                    else
                    {
                        ClientScript.RegisterStartupScript(GetType(), "ok", "setTimeout(\"alert('删除失败!')\",3);", true);
                    }
                }

            }
            catch (Exception ex)
            {
                ClientScript.RegisterStartupScript(GetType(), "ok", "setTimeout(\"alert('删除失败!')\",3);", true);
            }
            BindDataPage();
        }
    }