PDA

View Full Version : سوال: کار نکردن رخداد کنترل linkbutton داخل repeater



zhr.rezae66i
یک شنبه 23 تیر 1392, 06:56 صبح
سلام من کد زیر رو گذاشتم
اما با کلیک روی لینک باتن رخداد page_change صدا زده نمیشه یعنی تریس که میکنم میبینم رخدادش صدا زده نمیشه
و در triger هم میخام این رو معرفی کنم کلا link button رو نمیشناسه
چکار کنم
ممنون

<asp:Repeater runat="server" ID="rptPager">
<ItemTemplate>
<asp:LinkButton ID="lnkPage" runat="server" Text = '<%#Eval("Text") %>' CommandArgument = '<%# Eval("Value") %>' Enabled = '<%# Eval("Enabled") %>' OnClick = "Page_Changed"></asp:LinkButton>

</ItemTemplate>
</asp:Repeater>

protected void Page_Changed(object sender, EventArgs e)
{
pageIndex = int.Parse((sender as LinkButton).CommandArgument);
ViewState["pageIndex"] = pageIndex;
this.GetCustomersPageWise(pageIndex);
}

ad.davachi
یک شنبه 23 تیر 1392, 08:12 صبح
سلام برای شناختنش از این کد استفاده کن
<asp:Repeater runat="server" ID="rptPager" onitemcommand="Repeater1_ItemCommand" >
<ItemTemplate>
<asp:LinkButton ID="lnkPage" runat="server" Text = '<%#Eval("1") %>' CommandName="cmd" OnClick = "Page_Changed"></asp:LinkButton>

</ItemTemplate>
</asp:Repeater>

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "cmd")
{
LinkButton button = e.CommandSource as LinkButton;

}
}
protected void Page_Changed(object sender, EventArgs e)
{
LinkButton m = (LinkButton)sender;
string val = m.Text;

}

zhr.rezae66i
یک شنبه 23 تیر 1392, 08:37 صبح
نمیشناسه بازم
مشکلم کجاست لطفا راهنمایی کنید


private void GetCustomersPageWise(int pageIndex)
{
param[0] = DropDownList2.SelectedValue;
param[1] = DropDownList1.SelectedValue;
param[2] = ViewState["TxtOriginator"];
param[3] = ViewState["TxtContain"];
param[4] = ViewState["TxtDate1"];
param[5] = ViewState["TxtTime1"];
param[6] = ViewState["TxtDate2"];
param[7] = ViewState["TxtTime2"];
param[8] = ViewState["TypeSearch"];
param[9] = pageIndex;
param[10] =Convert.ToInt32( ddlPageSize.SelectedValue);
DTM.GridViewLoadMostafa(GridView1, "5000002", param);
int recordCount = 200;
if (GridView1.Rows.Count > 0)
{
GridView1.SelectedIndex = 0;
TxtBoxText.Text = GridView1.SelectedDataKey["Txt"].ToString();
}
else
TxtBoxText.Text = "";
this.PopulatePager(recordCount, pageIndex);
}


private void PopulatePager(int recordCount, int currentPage)
{
double dblPageCount = (double)((decimal)recordCount / decimal.Parse(ddlPageSize.SelectedValue));
int pageCount = (int)Math.Ceiling(dblPageCount);
List<ListItem> pages;
pages = new List<ListItem>();
if (pageCount > 0)
{
pages.Add(new ListItem("First", "1", currentPage > 1));
for (int i = 1; i <= pageCount; i++)
{
pages.Add(new ListItem(i.ToString(), i.ToString(), i != currentPage));
}
pages.Add(new ListItem("Last", pageCount.ToString(), currentPage < pageCount));
}
rptPager.DataSource = pages;
rptPager.DataBind();
}



protected void rptPager_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "cmd")
{
LinkButton button = e.CommandSource as LinkButton;
}
}
protected void Page_Changed(object sender, EventArgs e)
{
LinkButton m = (LinkButton)sender;
pageIndex = int.Parse(m.Text);
ViewState["pageIndex"] = pageIndex;
this.GetCustomersPageWise(pageIndex);
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["pageIndex"] = "";
param[0]= "ALL";
param[1] = "Today";
param[9] = 1;
param[10] = int.Parse(ddlPageSize.SelectedValue);
GetCustomersPageWise(1);

}
}


<asp:Repeater runat="server" ID="rptPager" onitemcommand="rptPager_ItemCommand">
<ItemTemplate>
<asp:LinkButton ID="lnkPage" runat="server" Text = '<%#Eval("Text") %>'
CommandArgument = '<%# Eval("Value") %>'
Enabled = '<%# Eval("Enabled") %>' CommandName="cmd" OnClick = "Page_Changed" >
</asp:LinkButton>
</ItemTemplate>
</asp:Repeater>

ad.davachi
یک شنبه 23 تیر 1392, 09:16 صبح
pageIndex = int.Parse(m.Text);
به نظرم مشکلت این خطه اشتباهه باید اینو جاش بذاری

int pageIndex = Int32.Parse(m.CommandArgument);

zhr.rezae66i
یک شنبه 23 تیر 1392, 10:42 صبح
عزیزم اصلا وقتی break point میزارم سراغ رخداد نمیره

ad.davachi
یک شنبه 23 تیر 1392, 11:08 صبح
من کد شما رو توی صفحم کپی کردم حتی توی صفحه update panel هم دارم ولی به راحتی event صدا زده میشه.
توی صفحت که repeater داری updatepanel داری؟ براش شرط نذاشتی؟این قسمت کدت کاملا درسته باید دنبال چیز دیگه ایی باشی

می تونی برای اینکه مطمئن بشی این قسمت کدت رو توی یه صفحه خالی و جدید اجرا کنی که خیالت راحت بشه اجرا میشه

zhr.rezae66i
یک شنبه 23 تیر 1392, 11:14 صبح
update panel دارم اما always هست
حالا ریپیتر برداشتم بجاش drop down list بایند کردم مشکلم فعلا حل شد