나는 하나가 dropdownlist
와 checkbox
에서 RadGrid
.
Enabled="false"
처음에는 드롭 다운을 설정했습니다 . 따라서 페이지로드시 드롭 다운 목록이 비활성화됩니다. 이제 RadGrid에서 확인란을 선택하면 드롭 다운이 활성화되어야합니다.
체크 박스 :
<telerik:GridTemplateColumn UniqueName="CheckBoxTemplateColumn">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged="ToggleRowSelection"
AutoPostBack="True" />
</ItemTemplate>
<HeaderTemplate>
<asp:CheckBox ID="headerChkbox" runat="server" OnCheckedChanged="ToggleSelectedState"
AutoPostBack="True" />
</HeaderTemplate>
</telerik:GridTemplateColumn>
드롭 다운 목록:
<telerik:RadDropDownList ID="ddlAction" Enabled="false" DefaultMessage="Action" AutoPostBack="true" DataValueField="action" OnSelectedIndexChanged="ddlAction_SelectedIndexChanged" runat="server">
<Items>
<telerik:DropDownListItem Text="" Value="" />
<telerik:DropDownListItem Text="Refresh Mail Status" Value="Refresh Mail Status" />
<telerik:DropDownListItem Text="Send All" Value="Send All" />
<telerik:DropDownListItem Text="Send Selected" Value="Send Selected"/>
<telerik:DropDownListItem Text="Remove" Value="Remove" />
</Items>
</telerik:RadDropDownList>
뒤에있는 코드 :
protected void ddlAction_SelectedIndexChanged(object sender, DropDownListEventArgs e)
{
CheckBox chk = (CheckBox)sender;
chk.FindControl("CheckBox1");
if (!chk.Checked) {
ddlAction.Enabled = true;
}
}
ToggleRowSelection
protected void ToggleRowSelection(object sender, EventArgs e)
{
((sender as CheckBox).NamingContainer as GridItem).Selected = (sender as CheckBox).Checked;
bool checkHeader = true;
foreach (GridDataItem dataItem in radgridCCBList.MasterTableView.Items)
{
if (!(dataItem.FindControl("CheckBox1") as CheckBox).Checked)
{
checkHeader = false;
break;
}
}
GridHeaderItem headerItem = radgridCCBList.MasterTableView.GetItems(GridItemType.Header)[0] as GridHeaderItem;
(headerItem.FindControl("headerChkbox") as CheckBox).Checked = checkHeader;
}
ToggleSelectedState
protected void ToggleSelectedState(object sender, EventArgs e)
{
CheckBox headerCheckBox = (sender as CheckBox);
foreach (GridDataItem dataItem in radgridCCBList.MasterTableView.Items)
{
(dataItem.FindControl("CheckBox1") as CheckBox).Checked = headerCheckBox.Checked;
dataItem.Selected = headerCheckBox.Checked;
}
}
여기서, ToggleRowSelection
및 ToggleSelectedState
방법 I가 특정 행의 체크 박스를 체크 할 때, 그리드의 특정 행을 선택한다.
아래 코드 스 니펫으로 시도하십시오.
방법 1 :
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddlAction.Enabled = false;
}
}
protected void ToggleRowSelection(object sender, EventArgs e)
{
ValidateCheckbox();
}
protected void ValidateCheckbox()
{
bool IsEnabled = false;
foreach (GridDataItem item in RadGrid1.MasterTableView.Items)
{
CheckBox CheckBox1 = item["CheckBoxTemplateColumn"].FindControl("CheckBox1") as CheckBox;
if (CheckBox1.Checked)
{
IsEnabled = true;
break;
}
}
ddlAction.Enabled = IsEnabled;
}
방법 2 :
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddlAction.Enabled = false;
}
}
protected void Page_PreRender(object sender, EventArgs e)
{
ValidateCheckbox();
}
protected void ValidateCheckbox()
{
bool IsEnabled = false;
foreach (GridDataItem item in RadGrid1.MasterTableView.Items)
{
CheckBox CheckBox1 = item["CheckBoxTemplateColumn"].FindControl("CheckBox1") as CheckBox;
if (CheckBox1.Checked)
{
IsEnabled = true;
break;
}
}
ddlAction.Enabled = IsEnabled;
}
업데이트 1 :
protected void ValidateCheckbox()
{
bool IsEnabled = false;
foreach (GridDataItem item in RadGrid1.MasterTableView.Items)
{
CheckBox CheckBox1 = item["CheckBoxTemplateColumn"].FindControl("CheckBox1") as CheckBox;
if (CheckBox1.Checked)
{
IsEnabled = true;
break;
}
}
GridHeaderItem headerItem = radgridCCBList.MasterTableView.GetItems(GridItemType.Header)[0] as GridHeaderItem;
if ((headerItem.FindControl("headerChkbox") as CheckBox).Checked)
{
IsEnabled = true;
}
ddlAction.Enabled = IsEnabled;
}
업데이트 2 : (RadDropDownList의 항목 만 비활성화하려면)
ASPX
<telerik:RadDropDownList ID="ddlAction" DefaultMessage="Action" AutoPostBack="true" DataValueField="action" runat="server">
<Items>
<telerik:DropDownListItem Text="" Value="" />
<telerik:DropDownListItem Text="Refresh Mail Status" Value="Refresh Mail Status" />
<telerik:DropDownListItem Text="Send All" Value="Send All" />
<telerik:DropDownListItem Text="Send Selected" Value="Send Selected" />
<telerik:DropDownListItem Text="Remove" Value="Remove" />
</Items>
</telerik:RadDropDownList>
ASPX.CS
protected void Page_Load(object sender, EventArgs e)
{
// To disable "Send All" option in DropDown
DisableItemInDropDown("Send All");
// To disable "Remove" option in DropDown
DisableItemInDropDown("Remove");
}
protected void DisableItemInDropDown(string ddlItemValueText)
{
foreach (DropDownListItem item in ddlAction.Items)
{
if (item.Value == ddlItemValueText)
{
item.Enabled = false;
}
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다