I have a databound grid and am needing to add an additional column that will show a link to a google map for the location designated for the record in each row.
firstly im not sure i am doing this in the correct place, second issue im having (using hard coded parameters) is that the URL is not including these parameter values, the URL just shows the querystring names but none of these has the additional values.
as far as i can see the url format string seems correct and the urlparameters variable is getting the string values set ok, but for some reason they are not replacing the palceholder values in the url.
finally how would i get at the actual datatable values i need once i have this hard coded version working correctly?
heres my code:
Private Sub FillGrid()
Try
Dim gc As GridBoundColumn
Dim glc As GridHyperLinkColumn
glc = New GridHyperLinkColumn
Me.uxGrid.Columns.Add(glc)
glc.HeaderText = "Map"
Dim urlparameters As String()
urlparameters = New String() {"b12jp", "1234", "32.54545", "-2.2342342"}
glc.DataNavigateUrlFields = urlparameters
glc.DataTextFormatString = "{2:D}"
glc.DataTextFormatString = "{3:D}"
glc.DataNavigateUrlFormatString = "GoogleMaps.htm?postcode={0}&id={1}&lat={2}&lng={3}"
glc.UniqueName = ""
glc.ItemStyle.HorizontalAlign = HorizontalAlign.Center
glc.Text = "Map"
glc.HeaderStyle.Width = Unit.Pixel(40)
glc.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
For Each col As DataColumn In _myData.Columns
gc = New GridBoundColumn
Me.uxGrid.Columns.Add(gc)
gc.HeaderText = GetCaption(col.ColumnName)
gc.UniqueName = col.ColumnName
gc.DataField = col.ColumnName
gc.Display = True
gc.HeaderStyle.Width = Unit.Pixel(170)
gc.ItemStyle.Wrap = True
Next
Catch ex As Exception
End Try
End Sub
protected void bt_add_Click1(object sender, EventArgs e)
{
Label6.Text = string.Empty;
AddtoList();
Label6.Visible = true;
}
protected void bt_view_Click(object sender, EventArgs e)
{
Gridview();
}
protected void bt_update_Click(object sender, EventArgs e)
{
Update();
clear();
}
protected void btn_reset_Click(object sender, EventArgs e)
{
clearcontrols();
Label6.Text = string.Empty;
}
protected void bt_delete_Click(object sender, EventArgs e)
{
Delete();
txt_Item.Text = string.Empty;
}
protected void StuList_Grid_PageIndexChanged(object sender, GridPageChangedEventArgs e)
{
StuList_Grid.CurrentPageIndex = e.NewPageIndex;
StuList_Grid.Visible = true;
SPList taskList = SpListitems();
DataTable tablelist = taskList.Items.GetDataTable();
StuList_Grid.DataSource = tablelist;
StuList_Grid.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
}
#endregion
#region Methods
//This method will display the sharepoint list items to Grid and
//Show listitems in textboxes by id.
private void Gridview()
{
if (txt_Item.Text == string.Empty)
{
try
{
StuList_Grid.Visible = true;
Descending();
StuList_Grid.CurrentPageIndex = 0;
SPList taskList = SpListitems();
DataTable tablelist = taskList.Items.GetDataTable();
StuList_Grid.DataSource = tablelist;
StuList_Grid.DataBind();
Label6.Text = string.Empty;
}
catch (Exception ex)
{
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(),
"AlertScript", "(function(){var f = function(){alert('not viewed', 370,210);Sys.Application.remove_load(f) ;};Sys.Application.add_load(f) ;})();", true);
}
}
else
{
StuList_Grid.Visible = false;
SPList taskList = SpListitems();
int id = Convert.ToInt32(txt_Item.Text);
SPListItem item = null;
try
{
item = taskList.GetItemById(id);
}
catch (Exception ex)
{
Label6.Text = "Item doesnot Exist";
}
if (item != null)
{
if (item["StuName"] != null)
{
txt_name.Text = item["StuName"].ToString();
}
else
txt_name.Text = string.Empty;
if (item["Department"] != null)
{
txt_dept.Text = item["Department"].ToString();
}
else
txt_dept.Text = string.Empty;
if (item["Location"] != null)
{
txt_location.Text = item["Location"].ToString();
}
else
txt_location.Text = string.Empty;
if (item["ContactNumber"] != null)
{
txt_number.Text = item["ContactNumber"].ToString();
}
else
txt_number.Text = string.Empty;
Label6.Text = string.Empty;
}
}
}
//This will add textbox values to sharepoint list.
private void AddtoList()
{
try
{
SPList taskList = SpListitems();
SPListItem listitem = taskList.Items.Add();
listitem["StuName"] = txt_name.Text;
listitem["Department"] = txt_dept.Text;
listitem["Location"] = txt_location.Text;
listitem["ContactNumber"] = txt_number.Text;
listitem.Update();
Label6.Text = "Records Saved";
clearcontrols();
Descending();
grid();
}
catch (Exception ex)
{
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(),
"AlertScript", "(function(){var f = function(){alert('not inserted', 370,210);Sys.Application.remove_load(f) ;};Sys.Application.add_load(f) ;})();", true);
}
}
//This will update the list items by id
private void Update()
{
try
{
if (txt_Item.Text == string.Empty)
{
Label6.Text = "ID value is Required";
}
SPList taskList = SpListitems();
SPListItem item = null;
int id = Convert.ToInt32(txt_Item.Text);
try
{
item = taskList.GetItemById(id);
}
catch (Exception ex)
{
Label6.Text = "Item doesnot Exist";
}
if (item != null)
{
item["StuName"] = txt_name.Text;
item["Department"] = txt_dept.Text;
item["Location"] = txt_location.Text;
item["ContactNumber"] = txt_number.Text;
item.Update();
taskList.Update();
Label6.Text = "Updated";
grid();
}
}
catch (Exception ex)
{
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(),
"AlertScript", "(function(){var f = function(){alert('Not Updated', 370,210);Sys.Application.remove_load(f) ;};Sys.Application.add_load(f) ;})();", true);
}
}
//This will delete the list items by id
private void Delete()
{
try
{
if (txt_Item.Text == string.Empty)
{
Label6.Text = "ID value is Required";
}
else
{
SPList taskList = SpListitems();
SPListItem item = null;
int id = Convert.ToInt32(txt_Item.Text);
try
{
item = taskList.GetItemById(id);
}
catch (Exception ex)
{
Label6.Text = "Item Doesnot Exist";
}
if (item != null)
{
item["StuName"] = txt_name.Text;
item["Department"] = txt_dept.Text;
item["Location"] = txt_location.Text;
item["ContactNumber"] = txt_number.Text;
item.Delete();
Label6.Text = "Deleted";
grid();
}
}
}
catch (Exception ex)
{
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(),
"AlertScript", "(function(){var f = function(){alert('Not Deleted', 370,210);Sys.Application.remove_load(f) ;};Sys.Application.add_load(f) ;})();", true);
}
}
//This will return value from method
protected SPList SpListitems()
{
string strDashListRoot = "http://dev02:2000";
SPSite osite = new SPSite(strDashListRoot);
SPWeb oWeb = osite.OpenWeb();
oWeb.AllowUnsafeUpdates = true;
SPList taskList = oWeb.Lists["Name"];
return taskList;
}
//This clear all textboxes and grid
private void clearcontrols()
{
txt_name.Text = string.Empty;
txt_dept.Text = string.Empty;
txt_location.Text = string.Empty;
txt_number.Text = string.Empty;
txt_Item.Text = string.Empty;
StuList_Grid.Visible = false;
}
//This clear all textboxes
private void clear()
{
txt_name.Text = string.Empty;
txt_dept.Text = string.Empty;
txt_location.Text = string.Empty;
txt_number.Text = string.Empty;
txt_Item.Text = string.Empty;
}
//This to bind the grid
private void grid()
{
StuList_Grid.Visible = true;
SPList taskList = SpListitems();
StuList_Grid.CurrentPageIndex = 0;
//StuList_Grid.CurrentPageIndex = StuList_Grid.PageCount - 1;
DataTable tablelist = taskList.Items.GetDataTable();
StuList_Grid.DataSource = tablelist;
StuList_Grid.DataBind();
}
//This will display latest item first in grid id in descending order
private void Descending()
{
GridSortExpression expression = new GridSortExpression();
expression.FieldName = "ID";
expression.SortOrder = GridSortOrder.Descending;
StuList_Grid.MasterTableView.SortExpressions.AddSortExpression(expression);
}
#endregion
}
}
<
telerik:RadDockLayout
ID
=
"RadDockLayout1"
runat
=
"server"
EnableViewState
=
"false"
>
<
telerik:RadGrid
ID
=
"RadGrid1"
DataSourceID
=
""
runat
=
"server"
AllowPaging
=
"false"
GridLines
=
"None"
PageSize
=
"20"
>
<
MasterTableView
TableLayout
=
"Fixed"
>
<
Columns
>
<
telerik:GridTemplateColumn
DataField
=
"GTC_Column"
>
<
ItemTemplate
>
<
telerik:RadDockZone
ID
=
"RadDockZone1"
runat
=
"server"
FitDocks
=
"true"
EnableViewState
=
"false"
Height
=
"400px"
Width
=
"900px"
Orientation
=
"Horizontal"
ToolTip
=
"Zone1"
></
telerik:RadDockZone
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
AllowColumnsReorder
=
"true"
ReorderColumnsOnClient
=
"true"
>
<
Resizing
AllowRowResize
=
"True"
EnableRealTimeResize
=
"True"
ResizeGridOnColumnResize
=
"True"
AllowColumnResize
=
"True"
></
Resizing
>
<
ClientEvents
OnGridCreated
=
"onGridCreated"
/>
</
ClientSettings
>
<
HeaderStyle
Width
=
"100px"
/>
</
telerik:RadGrid
>
</
telerik:RadDockLayout
>
<telerik:RadGrid ID=
"_rgPermissions"
runat=
"server"
AutoGenerateColumns=
"False"
HeaderStyle-Font-Bold=
"true"
AllowSorting=
"true"
GridLines=
"None"
Width=
"517px"
Height=
"595px"
Skin=
"Office2007"
OnNeedDataSource=
"_rgPermissions_NeedDataSource"
OnItemDataBound=
"_rgPermissions_ItemDataBound"
Visible=
"false"
>
<AlternatingItemStyle BackColor=
"#f4f5f7"
/>
<GroupingSettings CaseSensitive=
"false"
/>
<MasterTableView>
<Columns>
<telerik:GridBoundColumn UniqueName=
"roleName"
ItemStyle-Font-Size=
"X-Small"
DataField=
"roleName"
HeaderText=
"Role"
>
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn UniqueName=
"SliderPermissions"
HeaderText=
"Permissions"
ItemStyle-HorizontalAlign=
"Center"
HeaderStyle-Width=
"300px"
>
<ItemTemplate>
<telerik:RadSlider runat=
"server"
ID=
"_slPermissions"
Orientation=
"Horizontal"
Width=
"325px"
Height=
"40"
TrackPosition=
"Center"
ItemType=
"Item"
Skin=
"Windows7"
OnClientBeforeValueChange=
"IsItemDisabledOnPermissionsSlider"
>
<Items>
<telerik:RadSliderItem Text=
"None"
Value=
"None"
ToolTip=
"No permissions"
runat=
"server"
>
</telerik:RadSliderItem>
<telerik:RadSliderItem Text=
"View"
Value=
"View"
Enabled=
'<%# Convert.ToString(DataBinder.Eval(Container, "DataItem.View_Static")).Equals("") ? true : !(bool)DataBinder.Eval(Container, "DataItem.View_Static") %>'
ToolTip=
"Role can view folder and its contents"
runat=
"server"
></telerik:RadSliderItem>
<telerik:RadSliderItem Text=
"Add"
Value=
"Add"
Enabled=
'<%# Convert.ToString(DataBinder.Eval(Container, "DataItem.Add_Static")).Equals("") ? true : !(bool)DataBinder.Eval(Container, "DataItem.Add_Static") %>'
ToolTip=
"Role can upload files to folder or create new folders within"
runat=
"server"
>
</telerik:RadSliderItem>
<telerik:RadSliderItem Text=
"Edit"
Value=
"Edit"
Enabled=
'<%# Convert.ToString(DataBinder.Eval(Container, "DataItem.Edit_Static")).Equals("") ? true : !(bool)DataBinder.Eval(Container, "DataItem.Edit_Static") %>'
ToolTip=
"Role can edit folder and its contents"
runat=
"server"
></telerik:RadSliderItem>
<telerik:RadSliderItem Text=
'Delete'
Value=
"Delete"
Enabled=
'<%# Convert.ToString(DataBinder.Eval(Container, "DataItem.Delete_Static")).Equals("") ? true : !(bool)DataBinder.Eval(Container, "DataItem.Delete_Static") %>'
ToolTip=
"Role can delete folder and its contents"
runat=
"server"
></telerik:RadSliderItem>
</Items>
</telerik:RadSlider>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField=
"View_Static"
Visible=
"false"
UniqueName=
"View_Static"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField=
"Add_Static"
Visible=
"false"
UniqueName=
"Add_Static"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField=
"Edit_Static"
Visible=
"false"
UniqueName=
"Edit_Static"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField=
"Delete_Static"
Visible=
"false"
UniqueName=
"Delete_Static"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName=
"roleID"
Visible=
"false"
DataField=
"roleID"
AllowSorting=
"true"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName=
"parentMasterID"
DataField=
"parentMasterID"
Visible=
"false"
AllowSorting=
"true"
>
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField=
"FolderPermissionsID"
Visible=
"false"
UniqueName=
"FolderPermissionsID"
>
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
<HeaderStyle BorderColor=
"DarkGray"
BorderStyle=
"Solid"
BorderWidth=
"1px"
/>
</telerik:RadGrid>
<telerik:RadCodeBlock ID=
"_rcb"
runat=
"server"
>
<script type=
"text/javascript"
>
function IsItemDisabledOnPermissionsSlider(sender, args) {
if
(!sender.get_items()[args.get_newValue()].get_enabled())
args.set_cancel(
true
);
}
</script>
</telerik:RadCodeBlock>
function SavingChanges() {
var hdn = document.getElementById('<%=hdnIsModified.ClientID %>');
if (hdn) {
hdn.value = 'true';
}
}
function ClosePage() {
var oModifications = document.getElementById('<%=hdnIsModified.ClientID %>');
if (oModifications.value.toLowerCase() == "true") {
GetRadWindow().close('reload');
} else {
GetRadWindow().close();
}
}
function onBeforeWindowClose(oWinow, args) {
function callbckFunction(confirmResult) {
if (confirmResult) {// confirmResult == true
// Close this RadWindow
// First remove the handler in order to avoid recursion
oWinow.remove_beforeClose(onBeforeWindowClose);
oWinow.close();
// Reattach the handles after the window is closed.
// RECOMMENDATION: If the DestroyOnClose="true" property is set in in the RadWindow's declaration,
// then remove this line of the code:
oWinow.add_beforeClose(onBeforeWindowClose);
}
}
// Close the window: If modifications exist, reload parent grid by passing argument
var oModifications = document.getElementById('<%=hdnIsModified.ClientID %>');
if (oModifications.value.toLowerCase() != "true") {
// Cancel closing
args.set_cancel(true);
// Show a rad confirmation dialog
var sMsg = "Are you sure you want to cancel " + document.getElementById('<%=Mode.ClientID %>').value.toLowerCase() + "ing" + " the new requirement?";
radconfirm(sMsg, callbckFunction, 400, 150, null, "Confirm");
}
}
function GetRadWindow() {
var oWindow = null;
if (window.radWindow)
oWindow = window.radWindow;
else if (window.frameElement.radWindow)
oWindow = window.frameElement.radWindow;
return oWindow;
}
function pageLoad() {
// Get the RadWindoiw object that contains this page
var oWindow = GetRadWindow();
// Attach RadWindow's OnClientBeforeClose handler
oWindow.add_beforeClose(onBeforeWindowClose);
}
function pageUnload() {
// Get the RadWindoiw object that contains this page
var oWindow = GetRadWindow();
// NOTE! If the DestroyOnClose="true" is set in the RadWindow's declaration,
// then the oWindow object will be 'null'.
if (oWindow) {
// Detach RadWindow's OnClientBeforeClose handler
oWindow.remove_beforeClose(onBeforeWindowClose);
}
}
<
asp:Button
ID
=
"Save"
runat
=
"server"
Text
=
"Save"
onclick
=
"Save_Click"
OnClientClick
=
"SavingChanges();"
/>
<
input
id
=
"butCancel"
type
=
"button"
value
=
"Cancel"
onclick
=
"ClosePage();"
/>
<
div
style
=
"margin-left: 15px; margin-right: 10px; margin-top: 8px; margin-bottom: 8px"
>
<
hr
/>
<
telerik:RadAjaxPanel
ID
=
"RadAjaxPanel1"
runat
=
"server"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
>
<
div
ID
=
"DataEntryArea"
class
=
"span-22 last"
runat
=
"server"
>
</
div
>
</
telerik:RadAjaxPanel
>
<
hr
style
=
"margin:0.5em 0 0 0"
/>
</
div
>
<
telerik:GridBoundColumn
DataField
=
"IC01Name"
FilterControlWidth
=
"40px"
HeaderText
=
"IC01 Name"
SortExpression
=
"IC01Name"
UniqueName
=
"IC01Name"
>
<
HeaderStyle
Width
=
"70px"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"IC01 Name"
FilterControlWidth
=
"40px"
HeaderText
=
"IC01 Name"
SortExpression
=
"IC01 Name"
UniqueName
=
"IC01 Name"
>
<
HeaderStyle
Width
=
"70px"
/>
</
telerik:GridBoundColumn
>