![](/img/trans.png)
[英]SelectedIndexChanged event not firing inside the footer of a Datalist
[英]datalist selectedindexchanged not firing
頁面加載:
protected void Page_Load(object sender, EventArgs e)
{
tb.Columns.Add("Id", typeof(int));
tb.Columns.Add("FileName", typeof(string));
tb.Columns.Add("FilePath", typeof(string));
tb.Columns.Add("Index", typeof(int));
newtb.Columns.Add("Id", typeof(int));
newtb.Columns.Add("FileName", typeof(string));
newtb.Columns.Add("FilePath", typeof(string));
newtb.Columns.Add("Index", typeof(int));
path = objGetBaseCase.GetAllImagesfromGroup(CaseId);
for (int i = 0; i < path.Count; i++)
{
ArrayList alst = path[i];
tb.Rows.Add(Convert.ToInt32(alst[0]), alst[1].ToString(), alst[2].ToString(), i);
}
msgError.Text = "";
dlstImage.DataSource = tb;
DataBind();
List<ArrayList> t = new List<ArrayList>();
if (newpath.Count > 0)
{
t = newpath;
newpath = t;
for (int i = 0; i < newpath.Count; i++)
{
ArrayList alst = newpath[i];
newtb.Rows.Add(Convert.ToInt32(alst[0]), alst[1].ToString(), alst[2].ToString(), i);
}
ViewState["tempimage"] = newpath;
dlstSelectedImages.DataSource = newtb;
DataBind();
}
}
數據列表SelectedIndexChanged:
protected void dlstSelectedImages_SelectedIndexChanged(object sender, EventArgs e)
{
indexId = Convert.ToInt32(dlstSelectedImages.DataKeys[dlstSelectedImages.SelectedIndex]);
}
資料清單:
<asp:DataList ID="dlstSelectedImages" runat="server" RepeatDirection="Horizontal"
RepeatColumns="5" CellSpacing="8" DataKeyField="Id" OnSelectedIndexChanged="dlstSelectedImages_SelectedIndexChanged">
<ItemTemplate>
<asp:ImageButton ID="Image" runat="server" ImageUrl='<%#"~/Controls/ShowImage.ashx?FileName=" +DataBinder.Eval(Container.DataItem, "FilePath") %>'
CommandName="Select" OnCommand="ImageSelect_Command" CommandArgument='<%# Eval("Id").ToString() +";"+Eval("FilePath")+";"+Eval("Index")+";"+Eval("FileName") %>' /><br />
<asp:Label ID="nlbl" runat="server" Text="Figure"></asp:Label><%# dlstSelectedImages.Items.Count + 1%>
</ItemTemplate>
</asp:DataList>
迭代如下: View State="Enable"
, AutoEventWireup="true"
,
autopostback="true"
當我在!IsPostBack中綁定數據列表時,它工作得很好,但是現在我不想在!IsPostBack中綁定數據列表,並且我也不想使用ItemCommand
但是它不起作用,有人幫我...
每當SelectedIndex
Change事件觸發時,就會在selectedIndex
Change事件之前調用Page_Load
事件。 在page_load事件中,您的DataList
再次綁定,因此您的SelectedIndex事件丟失了。 您必須將您的DataList綁定代碼放在!IsPostBack
例如
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
newtb.Columns.Add("Id", typeof(int));
newtb.Columns.Add("FileName", typeof(string));
newtb.Columns.Add("FilePath", typeof(string));
newtb.Columns.Add("Index", typeof(int));
List<ArrayList> t = new List<ArrayList>();
if (newpath.Count > 0)
{
t = newpath;
newpath = t;
for (int i = 0; i < newpath.Count; i++)
{
ArrayList alst = newpath[i];
newtb.Rows.Add(Convert.ToInt32(alst[0]), alst[1].ToString(), alst[2].ToString(), i);
}
ViewState["tempimage"] = newpath;
dlstSelectedImages.DataSource = newtb;
DataBind();
}
}
}
您必須在項目模板中放置一個按鈕或超鏈接。 看這里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.