열 (GridView)을 숨기지 만 여전히 해당 값에 액세스하는 방법은 무엇입니까?
DataSource(SQL 데이터베이스) 가있는 GridView가 있습니다. 열을 숨기고 싶지만 레코드를 선택할 때 값에 계속 액세스 할 수 있습니다. 누군가이 작업을 수행하는 방법을 보여줄 수 있습니까?
이것은 숨기고 싶지만 여전히 그 값에 액세스하려는 열입니다.
<asp:BoundField DataField="Outlook_ID" HeaderText="OutlookID" />
열 (속성 Visible="false") 을 숨기려고 모든 것을 시도했지만 그 값에 액세스 할 수 없습니다.
내가 착각 GridView하지 않으면 BoundColumns속성이있는 값을 보유하지 않습니다 visible="false". 여기서 두 가지 작업을 수행 할 수 있습니다. 하나는 V4Vendetta의 답변에 설명되어 있습니다 Datakeys. 또는 당신은 당신을 변경할 수 있습니다 BoundColumnA를 TemplateField. 그리고에서 ItemTemplate같은 컨트롤을 추가 Label하고 가시성을 거짓으로 만들고 그 값을 부여하십시오 Label.
<head runat="server">
<title>Accessing GridView Hidden Column value </title>
<style type="text/css">
.hiddencol
{
display: none;
}
</style>
<asp:BoundField HeaderText="Email ID" DataField="EmailId" ItemStyle-CssClass="hiddencol" HeaderStyle-CssClass="hiddencol" >
</asp:BoundField>
ArrayList EmailList = new ArrayList();
foreach (GridViewRow itemrow in gvEmployeeDetails.Rows)
{
EmailList.Add(itemrow.Cells[YourIndex].Text);
}
CSS에서 스타일을 정의합니다.
.hiddencol { display: none; }
그런 다음 그리드 필드에 ItemStyle-CssClass="hiddencol"및 HeaderStyle-CssClass="hiddencol"속성을 추가합니다 .
<asp:BoundField DataField="ID" HeaderText="ID" ItemStyle-CssClass="hiddencol" HeaderStyle-CssClass="hiddencol" ClientIDMode="Static" />
이러한 필드의 값을 검색하는 데 DataKeys 를 사용할 수 있습니다. (말했듯이) normal BoundField을 visible false로 설정하면 값을 얻을 수 없기 때문입니다.
에서 .aspx파일에 설정된 GridView속성을
DataKeyNames = "Outlook_ID"
이제 이벤트 핸들러에서 다음과 같이이 키의 값에 액세스 할 수 있습니다.
grid.DataKeys[rowIndex]["Outlook_ID"]
그리드의 지정된 rowindex에있는 ID를 제공합니다.
프로그래밍 방식으로 수행 할 수 있습니다.
grid0.Columns[0].Visible = true;
grid0.DataSource = dt;
grid0.DataBind();
grid0.Columns[0].Visible = false;
이러한 방식으로 데이터 바인딩 전에 열을 표시하도록 설정하여 열이 생성됩니다. 열을 표시하지 않도록 설정 했으므로 표시되지 않습니다.
당신이이있는 경우 TemplateField귀하의 열이 내부를 GridView하고있다, 말, 제어라는 ㅋ ㅋ는 바인딩. 그런 다음 outlook_idas a를 HiddenField다음과 같이 배치하십시오 .
<asp:TemplateField HeaderText="OutlookID">
<ItemTemplate>
<asp:Label ID="blah" runat="server">Existing Control</asp:Label>
<asp:HiddenField ID="HiddenOutlookID" runat="server" Value='<%#Eval("Outlook_ID") %>'/>
</ItemTemplate>
</asp:TemplateField>
이제 원하는 이벤트의 행을 잡고 outlook_id컨트롤에 액세스합니다.
대한 RowDataBound액세스가 좋아 :
string outlookid = ((HiddenField)e.Row.FindControl("HiddenOutlookID")).Value;
클릭 한 행에 액세스하는 데 문제가 있으면 돌아가십시오. 그리고 그것에 액세스하고 싶은 이벤트를 언급하는 것을 잊지 마십시오.
hidden서버 측 에서 열 을 만들 수 있으며 어떤 이유로 aspx코드 를 수행하는 것과 다릅니다 . 보이는 것처럼 여전히 참조 될 수 있습니다. OnDataBound이벤트 에이 코드를 추가하기 만하면 됩니다.
protected void gvSearchResults_DataBound(object sender, EventArgs e)
{
GridView gridView = (GridView)sender;
if (gridView.HeaderRow != null && gridView.HeaderRow.Cells.Count > 0)
{
gridView.HeaderRow.Cells[UserIdColumnIndex].Visible = false;
}
foreach (GridViewRow row in gvSearchResults.Rows)
{
row.Cells[UserIdColumnIndex].Visible = false;
}
}
을 채우기 전에 볼 열을 남겨주세요 GridView. GridView열을 채운 다음 숨 깁니다.
다음은 GridView로 설정된 의 숨겨진 열 값을 가져 오는 방법 Visible=False입니다.이 경우 데이터 필드를 SpecialInstructions바인딩 된 GridView의 DataKeyNames 속성에 추가하고이 방법으로 액세스합니다.
txtSpcInst.Text = GridView2.DataKeys(GridView2.SelectedIndex).Values("SpecialInstructions")
That's it, it works every time very simple.
I have a new solution hide the column on client side using css or javascript or jquery.
.col0
{
display: none;
}
And set gvClientDetails.Columns[0].Visible = true; , If you set to false.
I used a method similar to user496892:
SPBoundField hiddenField = new SPBoundField();
hiddenField.HeaderText = "Header";
hiddenField.DataField = "DataFieldName";
grid.Columns.Add(hiddenField);
grid.DataSource = myDataSource;
grid.DataBind();
hiddenField.Visible = false;
You can do it code behind.
Set visible= false for columns after data binding . After that you can again do visibility "true" in row_selection function from grid view .It will work!!
When I want access some value from GridView before GridView was appears.
- I have a
BoundFieldand bindDataFieldnomally. - In
RowDataBoundevent, I do some process in that event. Before
GridViewwas appears I write this:protected void GridviewLecturer_PreRender(object sender, EventArgs e) { GridviewLecturer.Columns[0].Visible = false; }
참고URL : https://stackoverflow.com/questions/5376278/how-to-hide-a-column-gridview-but-still-access-its-value
'IT TIP' 카테고리의 다른 글
| symfony2 doctrine query Builder를 사용하여 고유 한 쿼리를 선택하는 방법은 무엇입니까? (0) | 2020.10.30 |
|---|---|
| ASP.NET Custom Validator 클라이언트 측 및 서버 측 유효성 검사가 실행되지 않음 (0) | 2020.10.30 |
| 여러 dex 파일이 Lorg / apache / cordova / BuildHelper를 정의합니다. (0) | 2020.10.30 |
| 레일스 콘솔이 libreadline으로 인해로드되지 않습니다. (0) | 2020.10.30 |
| 파일 삭제를위한 MSBuild 작업 구문 (0) | 2020.10.30 |