Ice_Freez05 Ответов: 5

получить значение ячейки в динамическом представлении сетки


Привет всем,

Всем доброго дня и спасибо. Мне нужна помощь в моем веб-приложении. У меня возникла проблема с получением значения ячейки в динамическом представлении сетки. кто-нибудь может мне помочь? Большое спасибо!... код находится прямо внизу.
<asp:GridView ID="gvAttendance" runat="Server"

                      AllowPaging="True"

                      AutoGenerateColumns="true" PageSize="10"

                      SelectedIndex="0" Width="465px"

                      CssClass="mGrid" PagerStyle-CssClass="pgr"

                      AlternatingRowStyle-CssClass="alt"



                      DataSourceID="sqlDSAttendance" DataMember="DefaultView"

            onrowdatabound="gvAttendance_RowDataBound"

            onrowcommand="gvAttendance_RowCommand" >
            <EmptyDataTemplate>
                <asp:Label ID="lblNull" runat="Server"

                           ForeColor="Red"> There&#39;s no data to show in this view...
                </asp:Label>
            </EmptyDataTemplate>
        </asp:GridView>
    </div>
</div>
<asp:SqlDataSource ID="sqlDSAttendance" runat="server"

                   ConnectionString="<%$ ConnectionStrings:OTEConnString %>"

                   ProviderName="MySql.Data.MySqlClient"

                   SelectCommand = "CALL ote.pivotwizard('AgentID,AgentNo,Agent_Name','att_Date','att_Time','ote.view_attendance','((agent_name IS NOT NULL) OR (year(att_date)=2010))')">
</asp:SqlDataSource>

Sandeep Mewara

- Какая проблема? Какая-нибудь ошибка? Покажи нам, что ты пытался?

Abhijit Jana

Пожалуйста, покажите нам свой код, где вы создаете gridview

Dalek Dave

Отредактировано для правильного языка блока кода.

5 Ответов

Рейтинг:
28

Abhijit Jana

Я не уверен, что вы подразумеваете под динамически созданной сеткой в этом контексте.

Если вы создаете контроль таким образом,

GridView grdView= new GridView();
grdView.DataSource=myDataSource;


Вы можете получить доступ к GridRows с помощью класса GridViewRows

GridViewRows gridviewRow= grdView.SelectedRow;


Теперь из gridviewRow вы получаете значение любой ячейки для этой строки, вы также можете пойти с тем, как предложил Sunasara, чтобы получить значение непосредственно из ячейки.

Надеюсь, это вам поможет !


Ice_Freez05

Но мне нужно получить конкретное значение щелкаемой ячейки, потому что я заполняю gridview динамически и без определенного столбца для столбца dates.

Dalek Dave

Хорошее Решение.

Рейтинг:
1

Ice_Freez05

<pre lang="xml"><asp:GridView ID="gvAttendance" runat="Server"
                      AllowPaging="True"
                      AutoGenerateColumns="true" PageSize="10"
                      SelectedIndex="0" Width="465px"
                      CssClass="mGrid" PagerStyle-CssClass="pgr"
                      AlternatingRowStyle-CssClass="alt"

                      DataSourceID="sqlDSAttendance" DataMember="DefaultView"
            onrowdatabound="gvAttendance_RowDataBound"
            onrowcommand="gvAttendance_RowCommand" >
            <EmptyDataTemplate>
                <asp:Label ID="lblNull" runat="Server"
                           ForeColor="Red"> There&#39;s no data to show in this view...
                </asp:Label>
            </EmptyDataTemplate>
        </asp:GridView>
    </div>
</div>
<asp:SqlDataSource ID="sqlDSAttendance" runat="server"
                   ConnectionString="<%$ ConnectionStrings:OTEConnString %>"
                   ProviderName="MySql.Data.MySqlClient"
                   SelectCommand = "CALL ote.pivotwizard('AgentID,AgentNo,Agent_Name','att_Date','att_Time','ote.view_attendance','((agent_name IS NOT NULL) OR (year(att_date)=2010))')">
</asp:SqlDataSource>



Это мой код для привязки gridview. автоматическое заполнение имеет значение true, поскольку данные являются динамическими, когда речь идет о добавлении какого-либо столбца. поэтому мне нужно получить значение ячейки, на которую был нажат клиент для обновления.


Abhijit Jana

Пожалуйста, обновите свой оригинальный пост с помощью этого исходного кода.

Sunasara Imdadhusen

Не добавляйте несколько вопросов каждый раз.

Рейтинг:
1

Ahmad Sakaji

для(тип int я&л;gvAttendance.строк.граф; я++)
{
Label lblAttendance=(Label)gvAttendance.Строки[i]. findcontrol("lblNull");

}


Ice_Freez05

в каком случае gridview я помещу этот фрагмент?Спасибо!

Рейтинг:
0

Sunasara Imdadhusen

Привет
Вы можете получить значение динамически создаваемого gridview, например

это возвращаемое значение управления gridview1 в строке 1 ячейка 1
управления gridview1.строки[0][0].текст


Спасибо,
Имдадхусен


Ice_Freez05

Спасибо за это. но это статический доступ к строке gridview.

Sunasara Imdadhusen

Вы можете получить gridview с помощью цикла и, наконец, получить из него значение

Ice_Freez05

Как я должен это сделать? не могли бы вы привести мне какой-нибудь пример? Большое спасибо!...

Sunasara Imdadhusen

Да, конечно, пожалуйста, пришлите свой фрагмент кода. так что я могу изменить его соответствующим образом.

Ice_Freez05

Я не знаю, как начать. Я даже не могу получить событие onclick ячейки.

Рейтинг:
0

Mohd Wasif

TextBox abc=(TextBox)Gridview1.Rows[e.Rowindex].Cells[0].Controls[0];


это для первой позиции элемента привязки gridview, и здесь вы можете конвертировать его в соответствии с выбранным вами элементом управления, таким как текстовое поле, метка и т. д.

другие способы это как
TextBox abc=(TextBox)Gridview1.Rows[e.Rowindex].Cells[0].FindControl("controlname");


как вы использовали в шаблоне элемента gridview.


Ice_Freez05

Я не могу использовать шаблон элемента, потому что 4-й столбец gridview является динамическим. Я понятия не имею, каково будет имя столбца, потому что я получил данные из хранимой процедуры, которая переносит строку даты в столбец.