C# 在ASP.NET数据列表中显示/隐藏复选框(嵌套)
我有一个嵌套的ASP数据列表,其中包含一个标签和一个在页面加载时绑定的复选框 在绑定过程中,会将字符串解析到datalist绑定方法中。如果该字符串等于值1,我希望该复选框对于嵌套数据列表中的每个项目都可见 “保持隐藏”是指值为而不是1 但是,代码可以编译并运行。它会将字符串值检测为1,但不会使复选框可见。我做错了什么?我怎样才能解决这个问题 数据列表:C# 在ASP.NET数据列表中显示/隐藏复选框(嵌套),c#,asp.net,checkbox,nested,datalist,C#,Asp.net,Checkbox,Nested,Datalist,我有一个嵌套的ASP数据列表,其中包含一个标签和一个在页面加载时绑定的复选框 在绑定过程中,会将字符串解析到datalist绑定方法中。如果该字符串等于值1,我希望该复选框对于嵌套数据列表中的每个项目都可见 “保持隐藏”是指值为而不是1 但是,代码可以编译并运行。它会将字符串值检测为1,但不会使复选框可见。我做错了什么?我怎样才能解决这个问题 数据列表: <asp:DataList runat="server" id="dgQuestionnaire" DataKeyField="Ques
<asp:DataList runat="server" id="dgQuestionnaire" DataKeyField="QuestionID" CssClass="confirm">
<ItemTemplate>
<div class="content_box" id="added_question">
<h3>Question <asp:Label ID="lblOrder" runat="server" Text='<%# Container.ItemIndex + 1 %>'></asp:Label></h3>
<p>Question Type</p>
<p><%# DataBinder.Eval(Container.DataItem, "QuestionText") %></p>
<asp:DataList ID="nestedDataList" runat="server">
<ItemTemplate>
<asp:CheckBox runat="server" ID="sampleCheckbox" Visible="false" />
<p class="confirm_answer new"><%# DataBinder.Eval(Container.DataItem, "AnswerTitle") %></p>
</ItemTemplate>
</asp:DataList>
</div>
</ItemTemplate>
</asp:DataList>
只有在错误的地方编写了代码,在Row/Item绑定事件中编写此代码,并获取当前绑定行而不是Row[itemindex]
public void BindParentDataList(int questionnaireID)
{
// populate the datalist with items from the datatable.
SendData = new OsqarSQL();
DT = SendData.GetQuestionNameDataList(questionnaireID);
dgQuestionnaire.DataSource = DT;
dgQuestionnaire.DataBind();
// each item in the datalist call BindNestedDataList method.
foreach (DataListItem Item in dgQuestionnaire.Items)
{
BindNestedDataList(Item.ItemIndex, DT.Rows[Item.ItemIndex][2].ToString());
}
}
public void BindNestedDataList(int ItemIndex, string _questionType)
{
// get questionID value for the current datalist item and populate the answers for the question.
int questionID = Convert.ToInt32(dgQuestionnaire.DataKeys[ItemIndex]);
DT = SendData.GetAnswerTitle(questionID);
DataList nestedDataList = (DataList)dgQuestionnaire.Items[ItemIndex].FindControl("nestedDataList");
if(_questionType == "1")
{
foreach (DataListItem Item in nestedDataList.Items)
{
CheckBox checkbox = (CheckBox)Item.FindControl("sampleCheckbox");
checkbox.Visible = true;
}
}
nestedDataList.DataSource = DT;
nestedDataList.DataBind();
}