为什么直放站ItemCommand不火,即使我不邮寄回来重新绑定? [英] Why Repeater ItemCommand Doesn't fire, even if i don't rebind by post back?

查看:196
本文介绍了为什么直放站ItemCommand不火,即使我不邮寄回来重新绑定?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如题你看,我有点火itemcommand问题(什么都没有发生)。
埃夫里的事情之前,让我告诉你,我看看所有的论坛和计算器这样的问题:

As title you see, I Have problem with firing itemcommand(nothing happened). before evry thing, let me tell you i take a look to all forums and stackoverflow questions like these :

直放站ItemCommand不火

Repeater未用的LinkBut​​ton 火ItemCommand

ItemCommand of Repeater is not fire with LinkButton

但我仍然有问题,这一点,所以,请看看我的code和GUID我。

But I Still Have Problem With this, so please just take a look to my code and guid me.

我的ASPX code是:

<div class="span4">
                    <aside class="left-sidebar">
                        <div class="widget">
                            <div class="input-append">
                                <input class="span2" id="SearchPhrase" type="text" placeholder="Type a Phrase" maxlength="20" runat="server" />
                                <asp:Button ID="AppendedInputButton" runat="server" class="btn btn-color" OnClick="AppendedInputButton_Click" Text="Search" />
                            </div>
                        </div>
                        <div class="widget">
                            <h5 class="widgetheading">Categories</h5>
                            <ul class="cat">
                                <asp:Repeater ID="RPTCategories" runat="server" DataSourceID="SDSCategories">
                                    <ItemTemplate>
                                        <li><i class='icon-angle-right'></i>&nbsp
                                            <asp:HyperLink ID="HLCategories" runat="server" NavigateUrl='<%# string.Format("~/En/News/{0}/{1}",Eval("CategoryId"),Eval("CategoryName").ToString().Replace(" ","-")) %>'><%#Eval("CategoryName")%></asp:HyperLink>
                                            <sub>&nbsp(<%# Eval("PostsCount") %>)&nbsp</sub></li>
                                    </ItemTemplate>
                                </asp:Repeater>
                                <asp:SqlDataSource ID="SDSCategories" runat="server" SelectCommand="SELECT C.CategoryId,CategoryName,COUNT(P.CategoryId) as PostsCount FROM TblCategory C left join TblPost P ON C.CategoryId=P.CategoryId AND C.Deleted <> 'True' AND P.Deleted <> 'True' GROUP BY CategoryName,C.CategoryId ORDER BY CategoryName ASC" ConnectionString="<%$ ConnectionStrings:ConnectionCS %>"></asp:SqlDataSource>
                            </ul>
                        </div>
                        <div class="widget">
                            <h5 class="widgetheading">Recent posts</h5>
                            <ul class="cat">
                                <asp:Repeater ID="RPTRecentPosts" runat="server" DataSourceID="SDSRecentPosts">
                                    <ItemTemplate>
                                        <li><i class='icon-angle-right'></i>&nbsp
                                            <asp:HyperLink ID="HLRecentPosts" runat="server" NavigateUrl='<%# string.Format("~/En/Post/{0}/{1}",Eval("PostId"),Eval("Title").ToString().Replace(" ","-")) %>'><%#Eval("Title")%></asp:HyperLink>
                                            <sub>&nbsp(<%# Eval("SubmitDate") %>)&nbsp</sub></li>
                                    </ItemTemplate>
                                </asp:Repeater>
                                <asp:SqlDataSource ID="SDSRecentPosts" runat="server" SelectCommand="SELECT TOP 5 PostId,Title,SubmitDate FROM TblPost Order BY PostId DESC" ConnectionString="<%$ ConnectionStrings:ConnectionCS %>"></asp:SqlDataSource>
                            </ul>
                        </div>
                    </aside>
                </div>

<div class="span8">
      <asp:Repeater ID="RPTPosts" runat="server">
      <ItemTemplate>
       <br />
       <article>
       <div class="row">
       <div class="span8">
       <div class="post-heading">
       <h3>
       <asp:HyperLink ID="HLPostTitle" runat="server" NavigateUrl='<%# string.Format("~/En/Post/{0}/{1}",Eval("PostId"),Eval("Title").ToString().Replace(" ","-")) %>'><%#Eval("Title")%></asp:HyperLink>
       </h3>
       </div>

       <div class="post-image">
       <asp:Image ID="IMGPostImage" runat="server" AlternateText='<%#Eval("Title") %>' ImageAlign="AbsMiddle" ImageUrl='<%# "~/Image/Blogs/"+ Eval("ImageName")%>' />
       </div>
       <div class="meta-post">
       <a href="#" class="author">By<br />Admin</a>
       <asp:HyperLink ID="HLPostDate" CssClass="date" runat="server" NavigateUrl='<%# string.Format("~/En/News/{0}",Eval("SubmitDate").ToString().Replace("/","-"))%>'><%# Eval("SubmitDate", "{0:d/MMMM}") %><br />
       <%# Eval("SubmitTime") %></asp:HyperLink>
       <br />
       <i class="icon-tags"></i>
       <p class="keywords" runat="server" id="KeyWords"><%# Eval("Kewords").ToString().Replace(","," - ")%></p>
       </div>

       <div class="post-entry">
       <div class="subtext">
       <%# Eval("MainText").ToString() %>
       </div>
       <br />
       <asp:HyperLink ID="PostLink" runat="server" CssClass="read-more" NavigateUrl='<%# string.Format("~/En/Post/{0}/{1}",Eval("PostId"),Eval("Title").ToString().Replace(" ","-")) %>'>Read more about&nbsp<%#Eval("Title")%></asp:HyperLink>
        </div>
        </div>
        </div>
        </article>
        <br />
        </ItemTemplate>
        </asp:Repeater>

      <div id="pagination">
      <span class="all" runat="server" id="CurrentPage">Total Pages</span>
      <asp:Repeater ID="RPTPaging" runat="server" Visible="false" OnItemDataBound="RPTPaging_ItemDataBound" OnItemCommand="RPTPaging_ItemCommand" >
      <ItemTemplate>
      <asp:LinkButton ID="BtnPage" CssClass="inactive" CommandName="Page"  CommandArgument="<%# Container.DataItem %>" runat="server" Text="<%# Container.DataItem %>"></asp:LinkButton>
       </ItemTemplate>
       </asp:Repeater>
       </div>

在这里,我的C#code是:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Microsoft.AspNet.FriendlyUrls;

namespace KamSln.En
{
    public partial class News : System.Web.UI.Page
    {
        DBQuerys DBQ = new DBQuerys();
        Funcs Fn = new Funcs();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                NewsPagedData();
            }
        }
        protected void AppendedInputButton_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/En/Search/" + SearchPhrase.Value.ToString());
        }
        protected void RPTPaging_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            ViewState["PageNumber"] = Convert.ToInt32(e.CommandArgument);
            NewsPagedData();
        }
        public int CurrentPageNumber
        {
            get
            {
                if (ViewState["PageNumber"] != null)
                {
                    return Convert.ToInt32(ViewState["PageNumber"]);
                }
                else
                {
                    return 1;
                }
            }
            set
            {
                ViewState["PageNumber"] = value;
            }
        }
        private void NewsPagedData()
        {
            DataTable dt = GetNews();
            DataView dv = new DataView(dt);
            PagedDataSource pagedItems = new PagedDataSource();
            pagedItems.DataSource = dv;
            pagedItems.AllowPaging = true;
            pagedItems.PageSize = 1;
            pagedItems.CurrentPageIndex = CurrentPageNumber - 1;
            ViewState["PageNumber"] = CurrentPageNumber;

            int rowsCount = dv.Table.Rows.Count;
            int totalPages = rowsCount / 1;
            if (totalPages > 1)
            {
                RPTPaging.Visible = true;
                CurrentPage.Visible = true;
                System.Collections.ArrayList pages = new System.Collections.ArrayList();
                for (int i = 0; i < totalPages; i++)
                    pages.Add((i + 1).ToString());
                RPTPaging.DataSource = pages;
                RPTPaging.DataBind();

            }
            else
            {
                RPTPaging.Visible = false;
                CurrentPage.Visible = false;
            }
            CurrentPage.InnerText = "Page " + CurrentPageNumber + " of " + totalPages;
            RPTPosts.DataSource = pagedItems;
            RPTPosts.DataBind();
        }
        protected void RPTPaging_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            LinkButton lb = (LinkButton)e.Item.FindControl("BtnPage");
            if (!Fn.ValidityCheck(lb.Text, "MightNull") && ViewState["PageNumber"] != null)
                if (ViewState["PageNumber"].ToString() == lb.Text)
                    lb.CssClass = "current";

        }
        private DataTable GetNews()
        {
            DataTable NewsTable = new DataTable();
            NewsTable = DBQ.PostsList(null, 'A', null, null);
            if (Page.RouteData.Values.Count > 0)
            {
                string FRdatta = Page.RouteData.Values.Keys.First().ToString();
                if (Page.RouteData.Values[FRdatta].ToString() != "En")
                {
                    switch (Page.RouteData.Values.Keys.First())
                    {
                        case "ci": NewsTable = DBQ.PostsList(Page.RouteData.Values["ci"].ToString(), 'C', null, null); break;
                        case "pd": NewsTable = DBQ.PostsList(null, 'D', Page.RouteData.Values["pd"].ToString(), null); break;
                        case "sf": NewsTable = DBQ.PostsList(null, 'T', null, Page.RouteData.Values["sf"].ToString());
                            foreach (DataRow row in NewsTable.Rows)
                            {
                                row["Title"] = row["Title"].ToString().Replace(Page.RouteData.Values["sf"].ToString(), "<span style='color:blue;font-weight:bold;text-decoration:underline;'>" + Page.RouteData.Values["sf"].ToString() + "</span>");
                                row["MainText"] = row["MainText"].ToString().Replace(Page.RouteData.Values["sf"].ToString(), "<span style='color:blue;font-weight:bold;text-decoration:underline;'>" + Page.RouteData.Values["sf"].ToString() + "</span>");
                            }
                            break;
                        default: NewsTable = DBQ.PostsList(null, 'A', null, null); break;
                    }
                }
            }
            return NewsTable;
        }




    }
}

是 - 不火与-的LinkBut​​ton

is-not-fire-with-linkbutton

推荐答案

尊敬的专家2天我终于弄清楚后,为什么我的页面不回发。之后我试图用java脚本手动回来后我的按钮,我失败了。我试图跟踪剧本,我发现这个错误与萤火虫:

Dear Expert After 2 day finally i figure out why my page doesn't post back. after i tried to post back my button manually with java script and i failed. i tried to trace the script and i found this Error with firebug:

 TypeError: theForm.submit is not a function
     theForm.submit();

当我谷歌,我发现我在母版使用id =提交有一个按钮,并为提交不是一个函数意味着你在你的命名提交按钮或一些其他元素提交。重命名按钮btnSubmit,将您的通话将神奇的工作。

when i google it i found i have a button in my MasterPage with id="Submit" and as "submit is not a function" means that you named your submit button or some other element submit. Rename the button to btnSubmit and your call will magically work.

在名称的按钮提交,你重写表单的提交()函数。

When you name the button submit, you override the submit() function on the form.

所以这个问题解决。感谢所有。

So This Problem Resolved. Thanks to all.

这篇关于为什么直放站ItemCommand不火,即使我不邮寄回来重新绑定?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆