리피터 내부에서 일련의 동적으로 생성 된 버튼을 만들어야합니다. 이 버튼 이름은 데이터베이스에서 가져옵니다. 사용자가 단추를 클릭하면 이름 옆에 일부 숨겨진 텍스트가 나타납니다. 다시 클릭하면 사라집니다. 텍스트는 HTML 또는 코드 뒤에 정의되어야합니다.리피터 내부에서 동적으로 생성 된 요소에 액세스
내가 생각하는 것을 보여주는 몇 가지 코드가 있습니다.
<asp:Repeater ID="Repeater1" DataSourceID="DecisionDetailsDS" runat="server" >
<ItemTemplate>
<asp:Button ID="DecisionButton" runat="server" OnClick="BTN_ShowText" BorderStyle="None"
Text='<%# Eval("Decision_Type_Dsc") %>' />
<asp:Label ID="DecisionLabel" Visible="false" runat="server" />
<p></p>
</ItemTemplate>
<AlternatingItemTemplate>
<asp:Button ID="DecisionButton" runat="server" OnClick="BTN_ShowText" BorderStyle="None"
Text='<%# Eval("Decision_Type_Dsc") %>' />
<asp:Label ID="DecisionLabel" Visible="false" runat="server" /> <p></p>
</AlternatingItemTemplate>
</asp:Repeater>
public void BTN_ShowText(Object sender, EventArgs e)
{
Label TestLabel = (Label)FindControl("DecisionLabel");
Button TestButton = (Button)FindControl("DecisionButton");
switch(TestButton.Text)
{
case "Dismissed":
TestLabel.Text = "Testing 1 2 3";
break;
case "Anything":
TestLabel.Text = "Testing 2 3 4";
break;
}
if (TestLabel.Visible == false)
{
TestLabel.Visible = true;
}
else
{
TestLabel.Visible = false;
}
}
}
나는 이것이 작동하지 않는다는 것을 알고있다. nulls가 반환됩니다. 버튼의 ID가 필요한데 해당하는 라벨입니다. 바라기를 이것은 내가하려는 일에 대한 아이디어를 제공합니다. 특히 제안 할 코드를 제공하면 어떤 제안이라도 환영합니다. 아마 jquery를 사용하는 줄 알았습니까?
.net/jquery 프로그래밍을 처음 사용합니다. 잘만되면 누군가 나를 도울 수 있습니다. 감사합니다. 당신이 시작 얻어야한다
public void BTN_ShowText(Object sender, EventArgs e)
{
(sender as Button).Text;
}
:
protected void Repeater1_DataBound(object sender, RepeaterItemEventArgs e)
{
(e.Item.FindControl("DecisionButton") as Button).Text
= Convert.ToString(e.DataItem["Decision_Type_Dsc"]);
}
와 버튼 이벤트 뒤에 코드에서 다음
이것은 완벽하게 작동했습니다! 내 코드로 구현하는 것이 매우 간단합니다. 고마워요! – Dave